* [PATCH] xen/arm: create_p2m_entries has to flush TLBs on every CPU
@ 2014-04-18 16:12 Julien Grall
2014-04-23 11:06 ` Ian Campbell
0 siblings, 1 reply; 3+ messages in thread
From: Julien Grall @ 2014-04-18 16:12 UTC (permalink / raw)
To: xen-devel; +Cc: stefano.stabellini, Julien Grall, tim, ian.campbell
The function create_p2m_entries creates mappings in second-level page tables
which is shared between every CPU.
Only flushing TLBs on local processor may result to wrong behaviour
when io{re,un}map is used.
Signed-off-by: Julien Grall <julien.grall@linaro.org>
---
This patch is candidate to be backported to Xen 4.4.
create_p2m_entries is only used by vmap ( iore{,un}map functions.
Upstream Xen 4.4 calls these functions only when 1 CPU is online so it's
"safe". People might want to use them when multiple CPUs are online.
Ian: Do you plan to backport your tlb series? If not, this patch will have
to slighty change because Xen 4.4 doesn't have TLBs helper to flush xen
data on every cpus.
---
xen/arch/arm/mm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 362bc8d..eac228c 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -845,7 +845,7 @@ static int create_xen_entries(enum xenmap_operation op,
BUG();
}
}
- flush_xen_data_tlb_range_va_local(virt, PAGE_SIZE * nr_mfns);
+ flush_xen_data_tlb_range_va(virt, PAGE_SIZE * nr_mfns);
rc = 0;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] xen/arm: create_p2m_entries has to flush TLBs on every CPU
2014-04-18 16:12 [PATCH] xen/arm: create_p2m_entries has to flush TLBs on every CPU Julien Grall
@ 2014-04-23 11:06 ` Ian Campbell
2014-04-23 11:22 ` Julien Grall
0 siblings, 1 reply; 3+ messages in thread
From: Ian Campbell @ 2014-04-23 11:06 UTC (permalink / raw)
To: Julien Grall; +Cc: xen-devel, tim, stefano.stabellini
On Fri, 2014-04-18 at 17:12 +0100, Julien Grall wrote:
> The function create_p2m_entries creates mappings in second-level page tables
> which is shared between every CPU.
You say create_p2m_entries twice but then patch create_xen_entries. Is
it the patch or the description which is wrong?
> Only flushing TLBs on local processor may result to wrong behaviour
> when io{re,un}map is used.
>From this sounds like it's the desription?
> Signed-off-by: Julien Grall <julien.grall@linaro.org>
> ---
>
> This patch is candidate to be backported to Xen 4.4.
>
> create_p2m_entries is only used by vmap ( iore{,un}map functions.
>
> Upstream Xen 4.4 calls these functions only when 1 CPU is online so it's
> "safe". People might want to use them when multiple CPUs are online.
>
> Ian: Do you plan to backport your tlb series? If not, this patch will have
> to slighty change because Xen 4.4 doesn't have TLBs helper to flush xen
> data on every cpus.
I wasn't planning to backport the tlb series, but I could look at
backporting the required bits I suppose.
However, is it needed? Does 4.4 make any ioremap calls where this would
actually hurt? I think all the uses in xen/arch/arm/platforms/*.c are
short lived and only accessed from the current cpu. The one in
xen/drivers/video/arm_hdlcd.c is done before we go SMP anyway.
Ian.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] xen/arm: create_p2m_entries has to flush TLBs on every CPU
2014-04-23 11:06 ` Ian Campbell
@ 2014-04-23 11:22 ` Julien Grall
0 siblings, 0 replies; 3+ messages in thread
From: Julien Grall @ 2014-04-23 11:22 UTC (permalink / raw)
To: Ian Campbell; +Cc: xen-devel, tim, stefano.stabellini
Hi Ian,
On 04/23/2014 12:06 PM, Ian Campbell wrote:
> On Fri, 2014-04-18 at 17:12 +0100, Julien Grall wrote:
>> The function create_p2m_entries creates mappings in second-level page tables
>> which is shared between every CPU.
>
> You say create_p2m_entries twice but then patch create_xen_entries. Is
> it the patch or the description which is wrong?
The description is wrong, sorry. I will send a new version of this patch.
>
>> Only flushing TLBs on local processor may result to wrong behaviour
>> when io{re,un}map is used.
>
> From this sounds like it's the desription?
>
>> Signed-off-by: Julien Grall <julien.grall@linaro.org>
>> ---
>>
>> This patch is candidate to be backported to Xen 4.4.
>>
>> create_p2m_entries is only used by vmap ( iore{,un}map functions.
>>
>> Upstream Xen 4.4 calls these functions only when 1 CPU is online so it's
>> "safe". People might want to use them when multiple CPUs are online.
>>
>> Ian: Do you plan to backport your tlb series? If not, this patch will have
>> to slighty change because Xen 4.4 doesn't have TLBs helper to flush xen
>> data on every cpus.
>
> I wasn't planning to backport the tlb series, but I could look at
> backporting the required bits I suppose.
>
> However, is it needed? Does 4.4 make any ioremap calls where this would
> actually hurt? I think all the uses in xen/arch/arm/platforms/*.c are
> short lived and only accessed from the current cpu. The one in
> xen/drivers/video/arm_hdlcd.c is done before we go SMP anyway.
There is some in serials drivers. I was thinking about people making
product based Xen 4.4. They might use io{re,un}map in their own code
with all CPUs up.
Regards,
--
Julien Grall
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-04-23 11:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-18 16:12 [PATCH] xen/arm: create_p2m_entries has to flush TLBs on every CPU Julien Grall
2014-04-23 11:06 ` Ian Campbell
2014-04-23 11:22 ` Julien Grall
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.