Messages in this thread | | | Date | Thu, 5 Jan 2012 19:28:46 +0100 | From | Andi Kleen <> | Subject | Re: x86-64: memset()/memcpy() not fully standards compliant |
| |
On Thu, Jan 05, 2012 at 02:04:30PM +0000, Jan Beulich wrote: > Forever these two functions have been limited to deal with at most 4G > at a time. While I cannot point out an in-tree user that would require > larger sizes, it is now the second time that within our Xen kernel we got > bitten by that limitation. Would you nevertheless accept a patch to > eliminate those shortcomings (iirc there may need to be workarounds > for CPU bugs when it comes to using string instructions on such large > blocks, albeit memmove() doesn't seem to care)? > > Otherwise, is there any rationale for this sort of lurking bug?
Most (all?) of the CPUs I cared about when writing that code had bugs with string instructions and >4GB.
And I don't think anything in the kernel would ever process that big areas in a single operation.
So it never seemed worth caring about.
You probably would need at least one more CMP & conditional jump in the hot path, so everyone would pay for something that never happens.
-Andi
| |