Again, sorry for the personal message, Peter, Google really is failing here, more so than me.
>> But in my case, an instruction did forward modify some code, but this if statement did not execute and QEMU executed the old code. On 14 January 2016 at 16:28, farmdve <farm...@gmail.com> wrote: > But in my case, an instruction did forward modify some code, but this if > statement did not execute and QEMU executed the old code. > > On 14 January 2016 at 12:27, Peter Maydell <peter.mayd...@linaro.org> > wrote: > >> On 14 January 2016 at 10:15, farmdve <farm...@gmail.com> wrote: >> > Sorry about that. Somehow Google decided it should reply to you, rather >> than >> > the mailing list. It was an honest mistake. >> > >> > Original question is below >> > >> > >> > I am unable to get this part here if (!(tb_end <= start || tb_start >= >> end)) >> > in tb_invalidate_phys_page_range >> > >> > What would happen if code forward modifies itself, but that condition >> > evaluates to true? >> >> If that condition is true, then the TB we're looking at (as we >> iterate through every TB we know about) is not in fact overlapping >> with the page that the guest just modified, and so is not affected >> by the write... >> >> > Then this piece here won't get executed >> >> ...and so it is correct that we don't need to do anything for this TB. >> >> thanks >> -- PMM >> > >