[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 0/5] use mask operations instead of test_bit()
On Fri, 2015-10-02 at 06:40 +0200, Juergen Gross wrote: > Instead of using test_bit() which is an atomic operation and limits > the compiler's choices to do optimization, use logical ANDs with > bitmasks where possible. > That's a good idea, I think. > The possible candidates have been detected by searching definitions > of bitmasks in the form: > > #define MASK 1 << _MASK > Right. > On x86 the resulting code is slightly smaller (about 2 bytes for each > case, checked via disassembly in few examples). > > I'm quite sure I didn't replace a test_bit() call required to be > atomic, but I'd be grateful for a thorough review especially in the > scheduler. > I'll have a deep look. One question, can we introduce a __test_bit() macro/inline function, like Jan did with __set_bit? I've quickly-&-dirtily tested this: #define __test_bit(nr, addr) ({ \ unsigned _flags = 1 << nr; \ addr & _flags; \ }) and the result (I've checked a couple of cases) seems the same to me. Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |