[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 0/5] x86: improve PDX <-> PFN and alike translations

On 28/02/18 13:51, Jan Beulich wrote:
> 1: remove page.h and processor.h inclusion from asm_defns.h
> 2: use PDEP for PTE flags insertion when available
> 3: use PDEP/PEXT for maddr/direct-map-offset conversion when available
> 4: use PDEP/PEXT for PFN/PDX conversion when available
> 5: use MOV for PFN/PDX conversion when possible
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

Ah - so this was the series you were on about which would have an
interesting time in combination with my nop autosizing.

Do you have performance numbers for these changes?  I can certainly see
the attraction of using BMI2 when available, but do the associated costs
on incompatible hardware worth it?  I'm thinking specifically of turning
all this inline bit manipulation into function calls?  (I genuinely
don't know the answer, and it might be entirely fine, but I'm concerned
about whether it may not be).

What generation of binutils do you expect this all to work with?

As for the pte flags, there is a much more simple approach which I've
considered investigating in the past, and I think warrants discussing here.

By switching 'unsigned int flags' to 'unsigned long flags', we avoid any
need for packing in the first place.  Being 64bit only these days, all
other PTE calculations are already 64bit operations, and the masks are
probably already available in GPRs at the use-sites.  I.e. I think the
use of 64bit flags will make better code than even this proposal.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.