[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <5049BA020200007800099920@nat28.tlf.novell.com>
Date: Fri, 07 Sep 2012 08:10:26 +0100
From: "Jan Beulich" <JBeulich@...e.com>
To: "Alex Shi" <alex.shi@...el.com>
Cc: <jeremy.fitzhardinge@...rix.com>, <tglx@...utronix.de>,
"Andrew Morton" <akpm@...ux-foundation.org>, <mingo@...hat.com>,
<cpw@....com>, <steiner@....com>, <linux-kernel@...r.kernel.org>,
<hpa@...or.com>
Subject: Re: [PATCH] UV: fix incorrect tlb flush all issue
>>> On 07.09.12 at 07:37, Alex Shi <alex.shi@...el.com> wrote:
> @@ -1113,7 +1114,10 @@ const struct cpumask *uv_flush_tlb_others(const struct
> cpumask *cpumask,
>
> record_send_statistics(stat, locals, hubs, remotes, bau_desc);
>
> - bau_desc->payload.address = start;
> + if (!end)
So despite having made a very similar mistake on the Xen side,
you're again not following your own code adjustments here:
The indicator for a multi-page flush is not 'end' being zero, nor
would it be okay to use the proper indicator (TLB_FLUSH_ALL)
here. Instead, to yield correct code, you need to check for the
range covering more than one page. Improvements to do finer
grained flushing (if worthwhile on UV) could then be done on
top of this.
Jan
> + bau_desc->payload.address = TLB_FLUSH_ALL;
> + else
> + bau_desc->payload.address = start;
> bau_desc->payload.sending_cpu = cpu;
> /*
> * uv_flush_send_and_wait returns 0 if all cpu's were messaged,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists