I may be wrong but I think that ida allocates hunks for 1024 bits (128 bytes * 8) at a time. (see [1])
So with this extra sape and the sapce for the xarray, it would waste a few bytes of memory, yes.
With ida, there is also some locking that may be unnecessary (but harmless)
Hoping, I got it right, here are a few numbers:
On a x86_64, with allmodconfig:
Your initial patch:
text data bss dec hex filename
55020 1783 268 57071 deef sound/core/timer.o
With ida:
54763 1631 116 56510 dcbe sound/core/timer.o
+ 128 bytes of runtime memory allocation
With bitmap:
54805 1535 132 56472 dc98 sound/core/timer.o
I think that the code would be slightly more elegant with ida, but implementing it with a bitmap does not add that much complexity.