From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: LKML <linux-kernel@vger.kernel.org>,
Isaku Yamahata <yamahata@valinux.co.jp>
Subject: [PATCH 20 of 24] xen: disable preemption during tlb flush
Date: Wed, 02 Apr 2008 10:54:09 -0700 [thread overview]
Message-ID: <31e6dbedc4a20899f686.1207158849@localhost> (raw)
In-Reply-To: <patchbomb.1207158829@localhost>
Various places in the kernel flush the tlb even though preemption doens't
guarantee the tlb flush is happening on any particular CPU. In many cases
this doesn't seem to matter, so don't make a fuss about it.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
arch/x86/xen/enlighten.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -532,26 +532,37 @@
static void xen_flush_tlb(void)
{
struct mmuext_op *op;
- struct multicall_space mcs = xen_mc_entry(sizeof(*op));
+ struct multicall_space mcs;
+
+ preempt_disable();
+
+ mcs = xen_mc_entry(sizeof(*op));
op = mcs.args;
op->cmd = MMUEXT_TLB_FLUSH_LOCAL;
MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
xen_mc_issue(PARAVIRT_LAZY_MMU);
+
+ preempt_enable();
}
static void xen_flush_tlb_single(unsigned long addr)
{
struct mmuext_op *op;
- struct multicall_space mcs = xen_mc_entry(sizeof(*op));
+ struct multicall_space mcs;
+ preempt_disable();
+
+ mcs = xen_mc_entry(sizeof(*op));
op = mcs.args;
op->cmd = MMUEXT_INVLPG_LOCAL;
op->arg1.linear_addr = addr & PAGE_MASK;
MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
xen_mc_issue(PARAVIRT_LAZY_MMU);
+
+ preempt_enable();
}
static void xen_flush_tlb_others(const cpumask_t *cpus, struct mm_struct *mm,
next prev parent reply other threads:[~2008-04-02 18:40 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-02 17:53 [PATCH 00 of 24] More Xen updates Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 01 of 24] xen: add missing __HYPERVISOR_arch_[0-7] definisions which ia64 needs Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 02 of 24] xen: add missing VIRQ_ARCH_[0-7] definitions which ia64/xen needs Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 03 of 24] xen: add missing definitions for xen grant table " Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 04 of 24] xen: add missing definitions in include/xen/interface/vcpu.h " Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 05 of 24] xen: move features.c from arch/x86/xen/features.c to drivers/xen Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 06 of 24] xen: Move events.c to drivers/xen for IA64/Xen support Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 07 of 24] Xen: Make events.c portable for ia64/xen support Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 08 of 24] Re: [PATCH 08/12] xen: add resend_irq_on_evtchn() definition into events.c Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 09 of 24] xen: make include/xen/page.h portable moving those definitions under asm dir Jeremy Fitzhardinge
2008-04-02 17:53 ` [PATCH 10 of 24] xen: replace callers of alloc_vm_area()/free_vm_area() with xen_ prefixed one Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 11 of 24] xen: make grant table arch portable Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 12 of 24] xen: import arch generic part of xencomm Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 13 of 24] [PATCH] xen: Make xen-blkfront write its protocol ABI to xenstore Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 14 of 24] xen/blkfront: use bdget_disk Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 15 of 24] xen blkfront: Delay wait for block devices until after the disk is added Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 16 of 24] xen: Module autoprobing support for frontend drivers Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 17 of 24] xen: Add compatibility aliases " Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 18 of 24] xen pvfb: Para-virtual framebuffer, keyboard and pointer driver Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 19 of 24] x86: fix build problem in pud_populate without CONFIG_PARAVIRT Jeremy Fitzhardinge
2008-04-02 17:54 ` Jeremy Fitzhardinge [this message]
2008-04-02 17:54 ` [PATCH 21 of 24] xen: allow set_pte_at on init_mm to be lockless Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 22 of 24] xen: fold xen_sysexit into xen_iret Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 23 of 24] xen: allow compilation with non-flat memory Jeremy Fitzhardinge
2008-04-02 17:54 ` [PATCH 24 of 24] xen: add balloon driver Jeremy Fitzhardinge
2008-04-07 8:51 ` Isaku Yamahata
2008-04-07 19:01 ` Jeremy Fitzhardinge
2008-04-04 8:10 ` [PATCH 00 of 24] More Xen updates Ingo Molnar
2008-04-04 9:33 ` Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=31e6dbedc4a20899f686.1207158849@localhost \
--to=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=yamahata@valinux.co.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).