lkml.org 
[lkml]   [2005]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subjectx86 descriptor base fetching performance opportunities
Date
This is something I've just started investigating, but preliminary
benchmarks of trial instruction sequences look VERY favorable for
conditional compilation of different code for those CPU's that can do a
BSWAP instruction.

The Linux src appears not conditionalized in any way in its handling of
descriptor get/set operations at the moment.

The fetching of descriptor bases is a necessarily clumsy affair on 386
resulting in several shift/rotate/masking operations because the upper 16
bytes of the base are split in a rather un-handy way in the 2nd dword of a
descriptor.

However, for 486 and better CPU's this un-handy layout looks like it can be
mitigated by BSWAP. ex(pseudo-asm)

movl 4(des_ptr),eax // Take hi-dword of descriptor
rol 8,eax // AL=des-hi8, AH=des-hi-mid8
bswap eax // Now, EAX high 16 == high 16 of descriptor
movw 2(des_ptr),ax // Fill in the low 16 bits


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-06-17 15:35    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site