Re: [PATCH] xen: fix logical error in tlb flushing

Alex Shi
2012-09-05T05:35:25Z

On 08/25/2012 03:45 AM, Jan Beulich wrote:

>>>> On 24.08.12 at 20:17, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
>> On Fri, Aug 24, 2012 at 04:16:39PM +0100, Jan Beulich wrote:
>>>>>> On 24.08.12 at 10:55, Alex Shi <alex.shi@intel.com> wrote:
>>>> While TLB_FLUSH_ALL gets passed as 'end' argument to
>>>> flush_tlb_others(), the Xen code was made to check its 'start'
>>>> parameter. That may give a incorrect op.cmd to MMUEXT_INVLPG_MULTI
>>>> instead of MMUEXT_TLB_FLUSH_MULTI. Then it causes some page can not
>>>> be flushed from TLB.
>>>>
>>>> This patch fixed this issue.
>>>>
>>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>>> Signed-off-by: Alex Shi <alex.shi@intel.com>
>>>
>>> Acked-by: Jan Beulich <jbeulich@suse.com>

CC to Yongjie,
Could you like to test this patch on PV guest

>>
>> How can I reproduce this

>

> I don't know, I spotted this while looking at the code.

Again, since the old buggy code doesn't cause trouble in PV guest, guess
the hypercall for MMUEXT_INVLPG_MULTI was translated or treated as
MMUEXT_TLB_FLUSH_MULTI. If so, believe correct this will bring a big
performance benefit.