Message ID | 1398253016-27505-1-git-send-email-julien.grall@linaro.org |
---|---|
State | Accepted, archived |
Headers | show |
On Wed, 2014-04-23 at 12:36 +0100, Julien Grall wrote: > The function create_xen_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> Acked + applied. > --- > > This patch is candidate to be backported to Xen 4.4. Noted. I think you said this would need some backporting? Given that I'm inclined to hold off on backporting this until someone who is using 4.4 and tripping over the issue reports/requests it.
On Wed, 2014-04-23 at 12:36 +0100, Julien Grall wrote: > The function create_xen_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> Acked + applied. > --- > > This patch is candidate to be backported to Xen 4.4. Noted. I think you said this would need some backporting? Given that I'm inclined to hold off on backporting this until someone who is using 4.4 and tripping over the issue reports/requests it. > > 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". But people who make product based on Xen 4.4 might want to use theses > functions when all CPUs are UP. > > Changes in v2: > - The patch change create_xen_entries not create_p2m_entries > --- > 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; >
On 05/02/2014 01:58 PM, Ian Campbell wrote: >> --- >> >> This patch is candidate to be backported to Xen 4.4. > > Noted. I think you said this would need some backporting? Given that I'm > inclined to hold off on backporting this until someone who is using 4.4 > and tripping over the issue reports/requests it. I'm fine with this solution. Regards,
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;
The function create_xen_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". But people who make product based on Xen 4.4 might want to use theses functions when all CPUs are UP. Changes in v2: - The patch change create_xen_entries not create_p2m_entries --- xen/arch/arm/mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)