From: Juergen Gross <jgross@suse.com> To: xen-devel@lists.xenproject.org Cc: "Juergen Gross" <jgross@suse.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Wei Liu" <wei.liu2@citrix.com>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, "George Dunlap" <George.Dunlap@eu.citrix.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Ian Jackson" <ian.jackson@eu.citrix.com>, "Tim Deegan" <tim@xen.org>, "Julien Grall" <julien.grall@arm.com>, "Jan Beulich" <jbeulich@suse.com>, "Roger Pau Monné" <roger.pau@citrix.com> Subject: [PATCH 1/3] xen: drop in_atomic() Date: Wed, 22 May 2019 11:45:47 +0200 [thread overview] Message-ID: <20190522094549.28397-2-jgross@suse.com> (raw) In-Reply-To: <20190522094549.28397-1-jgross@suse.com> Currently there is only one user of in_atomic(), and that is in an #ifdef 0 section. This has been so since Xen 4.1, so chances are rather slim we suddenly want to enable it again. Dropping in_atomic() will remove the last user of preempt_count() in non-debug builds enabling further optimizations. Signed-off-by: Juergen Gross <jgross@suse.com> --- xen/arch/x86/hvm/hvm.c | 16 ---------------- xen/common/preempt.c | 5 ----- xen/include/xen/preempt.h | 2 -- 3 files changed, 23 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 8993c2aa57..7b36765b97 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3185,22 +3185,6 @@ static enum hvm_translation_result __hvm_copy( ASSERT(is_hvm_vcpu(v)); - /* - * XXX Disable for 4.1.0: PV-on-HVM drivers will do grant-table ops - * such as query_size. Grant-table code currently does copy_to/from_guest - * accesses under the big per-domain lock, which this test would disallow. - * The test is not needed until we implement sleeping-on-waitqueue when - * we access a paged-out frame, and that's post 4.1.0 now. - */ -#if 0 - /* - * If the required guest memory is paged out, this function may sleep. - * Hence we bail immediately if called from atomic context. - */ - if ( in_atomic() ) - return HVMTRANS_unhandleable; -#endif - while ( todo > 0 ) { enum hvm_translation_result res; diff --git a/xen/common/preempt.c b/xen/common/preempt.c index 3b4178fd44..20913e20d3 100644 --- a/xen/common/preempt.c +++ b/xen/common/preempt.c @@ -25,11 +25,6 @@ DEFINE_PER_CPU(unsigned int, __preempt_count); -bool_t in_atomic(void) -{ - return preempt_count() || in_irq() || !local_irq_is_enabled(); -} - #ifndef NDEBUG void ASSERT_NOT_IN_ATOMIC(void) { diff --git a/xen/include/xen/preempt.h b/xen/include/xen/preempt.h index bef83135a1..f715ca09bc 100644 --- a/xen/include/xen/preempt.h +++ b/xen/include/xen/preempt.h @@ -26,8 +26,6 @@ DECLARE_PER_CPU(unsigned int, __preempt_count); preempt_count()--; \ } while (0) -bool_t in_atomic(void); - #ifndef NDEBUG void ASSERT_NOT_IN_ATOMIC(void); #else -- 2.16.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
WARNING: multiple messages have this Message-ID (diff)
From: Juergen Gross <jgross@suse.com> To: xen-devel@lists.xenproject.org Cc: "Juergen Gross" <jgross@suse.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Wei Liu" <wei.liu2@citrix.com>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, "George Dunlap" <George.Dunlap@eu.citrix.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Ian Jackson" <ian.jackson@eu.citrix.com>, "Tim Deegan" <tim@xen.org>, "Julien Grall" <julien.grall@arm.com>, "Jan Beulich" <jbeulich@suse.com>, "Roger Pau Monné" <roger.pau@citrix.com> Subject: [Xen-devel] [PATCH 1/3] xen: drop in_atomic() Date: Wed, 22 May 2019 11:45:47 +0200 [thread overview] Message-ID: <20190522094549.28397-2-jgross@suse.com> (raw) Message-ID: <20190522094547.a6l4S-w7tBB5faAiQ-Ygc-qsrcJAxREnuaIIrrTw_Ik@z> (raw) In-Reply-To: <20190522094549.28397-1-jgross@suse.com> Currently there is only one user of in_atomic(), and that is in an #ifdef 0 section. This has been so since Xen 4.1, so chances are rather slim we suddenly want to enable it again. Dropping in_atomic() will remove the last user of preempt_count() in non-debug builds enabling further optimizations. Signed-off-by: Juergen Gross <jgross@suse.com> --- xen/arch/x86/hvm/hvm.c | 16 ---------------- xen/common/preempt.c | 5 ----- xen/include/xen/preempt.h | 2 -- 3 files changed, 23 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 8993c2aa57..7b36765b97 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3185,22 +3185,6 @@ static enum hvm_translation_result __hvm_copy( ASSERT(is_hvm_vcpu(v)); - /* - * XXX Disable for 4.1.0: PV-on-HVM drivers will do grant-table ops - * such as query_size. Grant-table code currently does copy_to/from_guest - * accesses under the big per-domain lock, which this test would disallow. - * The test is not needed until we implement sleeping-on-waitqueue when - * we access a paged-out frame, and that's post 4.1.0 now. - */ -#if 0 - /* - * If the required guest memory is paged out, this function may sleep. - * Hence we bail immediately if called from atomic context. - */ - if ( in_atomic() ) - return HVMTRANS_unhandleable; -#endif - while ( todo > 0 ) { enum hvm_translation_result res; diff --git a/xen/common/preempt.c b/xen/common/preempt.c index 3b4178fd44..20913e20d3 100644 --- a/xen/common/preempt.c +++ b/xen/common/preempt.c @@ -25,11 +25,6 @@ DEFINE_PER_CPU(unsigned int, __preempt_count); -bool_t in_atomic(void) -{ - return preempt_count() || in_irq() || !local_irq_is_enabled(); -} - #ifndef NDEBUG void ASSERT_NOT_IN_ATOMIC(void) { diff --git a/xen/include/xen/preempt.h b/xen/include/xen/preempt.h index bef83135a1..f715ca09bc 100644 --- a/xen/include/xen/preempt.h +++ b/xen/include/xen/preempt.h @@ -26,8 +26,6 @@ DECLARE_PER_CPU(unsigned int, __preempt_count); preempt_count()--; \ } while (0) -bool_t in_atomic(void); - #ifndef NDEBUG void ASSERT_NOT_IN_ATOMIC(void); #else -- 2.16.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-05-22 9:46 UTC|newest] Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-22 9:45 [PATCH 0/3] tune preempt_[dis|en]able() Juergen Gross 2019-05-22 9:45 ` [Xen-devel] " Juergen Gross 2019-05-22 9:45 ` Juergen Gross [this message] 2019-05-22 9:45 ` [Xen-devel] [PATCH 1/3] xen: drop in_atomic() Juergen Gross 2019-05-22 9:58 ` Andrew Cooper 2019-05-22 9:58 ` [Xen-devel] " Andrew Cooper 2019-05-22 10:10 ` Jan Beulich 2019-05-22 10:10 ` [Xen-devel] " Jan Beulich 2019-05-24 5:41 ` Juergen Gross 2019-05-24 5:41 ` [Xen-devel] " Juergen Gross 2019-05-24 6:38 ` Jan Beulich 2019-05-24 6:38 ` [Xen-devel] " Jan Beulich 2019-05-24 8:34 ` Juergen Gross 2019-05-24 8:34 ` [Xen-devel] " Juergen Gross 2019-05-24 8:39 ` Jan Beulich 2019-05-24 8:39 ` [Xen-devel] " Jan Beulich 2019-05-24 12:30 ` Andrew Cooper 2019-05-24 12:30 ` [Xen-devel] " Andrew Cooper 2019-05-24 12:35 ` Jan Beulich 2019-05-24 12:35 ` [Xen-devel] " Jan Beulich [not found] ` <5CE52014020000780023147E@suse.com> 2019-05-22 10:19 ` Juergen Gross 2019-05-22 10:19 ` [Xen-devel] " Juergen Gross 2019-05-22 12:34 ` Jan Beulich 2019-05-22 12:34 ` [Xen-devel] " Jan Beulich 2019-05-22 9:45 ` [PATCH 2/3] xen: drop preempt_count() for non-debug builds Juergen Gross 2019-05-22 9:45 ` [Xen-devel] " Juergen Gross 2019-05-22 10:00 ` Andrew Cooper 2019-05-22 10:00 ` [Xen-devel] " Andrew Cooper 2019-05-22 10:17 ` Juergen Gross 2019-05-22 10:17 ` [Xen-devel] " Juergen Gross 2019-05-22 10:18 ` Jan Beulich 2019-05-22 10:18 ` [Xen-devel] " Jan Beulich 2019-05-22 10:39 ` Andrew Cooper 2019-05-22 10:39 ` [Xen-devel] " Andrew Cooper 2019-05-22 10:12 ` Jan Beulich 2019-05-22 10:12 ` [Xen-devel] " Jan Beulich [not found] ` <5CE5207A0200007800231481@suse.com> 2019-05-22 10:17 ` Juergen Gross 2019-05-22 10:17 ` [Xen-devel] " Juergen Gross 2019-05-22 9:45 ` [PATCH 3/3] xen: build common/preempt.c only with CONFIG_DEBUG Juergen Gross 2019-05-22 9:45 ` [Xen-devel] " Juergen Gross 2019-05-22 13:01 [PATCH 1/3] xen: drop in_atomic() Juergen Gross
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=20190522094549.28397-2-jgross@suse.com \ --to=jgross@suse.com \ --cc=George.Dunlap@eu.citrix.com \ --cc=andrew.cooper3@citrix.com \ --cc=ian.jackson@eu.citrix.com \ --cc=jbeulich@suse.com \ --cc=julien.grall@arm.com \ --cc=konrad.wilk@oracle.com \ --cc=roger.pau@citrix.com \ --cc=sstabellini@kernel.org \ --cc=tim@xen.org \ --cc=wei.liu2@citrix.com \ --cc=xen-devel@lists.xenproject.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.