On 8/21/07, Andi Kleen <[EMAIL PROTECTED]> wrote: > On Tue, Aug 21, 2007 at 04:30:10AM -0300, Glauber de Oliveira Costa wrote: > > On 8/20/07, Jeremy Fitzhardinge <[EMAIL PROTECTED]> wrote: > > > Chris Wright wrote: > > > > That did get backed out (at least the part that broke paravirt patching) > > > > in 602033ed5907a59ce86f709082a35be047743a86. Linus' tree should be > > > > working fine right now with d34fda4a84c18402640a1a2342d6e6d9829e6db7 > > > > committed, and can be further refined with the patch below that's just > > > > waiting on some further testing. > > > > > > > > > > I don't think this is necessary. It isn't worth complicating the > > > interface to avoid the memcpy. > > > > > > J > > Damn, > > > > I can't believe I've just lost a night tracking the issue, without > > seeing the discussion here ;-) > > I came out to this very same conclusion, and was about to send a patch > > that fixes it, by doing a memcpy before starting the instruction > > replacement. > > > > (I wouldn't say anything, as this is solved, but my night have to get > > some value, after all! ;-) > > > > So I'm with Jeremy. We don't lose too much by putting a memcpy there, > > this code is not exactly critical. It also seems cleaner, and less > > error prone. I have a patch ready here, but I think by this time, you > > guys have too ;-) > > x86-64 also has a __inline_memcpy that is guaranteed inlined. It was > originally for such cases when memcpy didn't work. Could be added to i386 > too if there is need > Andi,
this is not the case that memcpy did not work. (I got the same issue for paravirt_ops x86_64, and btw, that's why I have not yet sent a new patch). The thing is that if that the paravirt replacement function returns, it will return with the temporary buffer empty, will write the buffer with text_poke(), and thus, put crap into the code. So adding a memcpy to the buffer guarantees that in the worst case, it will contain the original instruction. The normal memcpy works neatly. -- Glauber de Oliveira Costa. "Free as in Freedom" http://glommer.net "The less confident you are, the more serious you have to act." - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/