All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gavin Shan <gshan@redhat.com>
To: kvmarm@lists.cs.columbia.edu
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, maz@kernel.org,
	mark.rutland@arm.com, will@kernel.org, catalin.marinas@arm.com,
	james.morse@arm.com, suzuki.poulose@arm.com, drjones@redhat.com,
	eric.auger@redhat.com, aarcange@redhat.com, shan.gavin@gmail.com
Subject: [PATCH RFCv2 8/9] kernel/sched: Add cpu_rq_is_locked()
Date: Fri,  8 May 2020 13:29:18 +1000	[thread overview]
Message-ID: <20200508032919.52147-9-gshan@redhat.com> (raw)
In-Reply-To: <20200508032919.52147-1-gshan@redhat.com>

This adds API cpu_rq_is_locked() to check if the CPU's runqueue has been
locked or not. It's used in the subsequent patch to determine the task
wakeup should be executed immediately or delayed.

Signed-off-by: Gavin Shan <gshan@redhat.com>
---
 include/linux/sched.h | 1 +
 kernel/sched/core.c   | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 4418f5cb8324..e68882443da7 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1691,6 +1691,7 @@ extern struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *n
  */
 extern struct task_struct *find_get_task_by_vpid(pid_t nr);
 
+extern bool cpu_rq_is_locked(int cpu);
 extern int wake_up_state(struct task_struct *tsk, unsigned int state);
 extern int wake_up_process(struct task_struct *tsk);
 extern void wake_up_new_task(struct task_struct *tsk);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 9a2fbf98fd6f..30f4a8845495 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -73,6 +73,14 @@ __read_mostly int scheduler_running;
  */
 int sysctl_sched_rt_runtime = 950000;
 
+bool cpu_rq_is_locked(int cpu)
+{
+	struct rq *rq = cpu_rq(cpu);
+
+	return raw_spin_is_locked(&rq->lock) ? true :  false;
+}
+EXPORT_SYMBOL_GPL(cpu_rq_is_locked);
+
 /*
  * __task_rq_lock - lock the rq @p resides on.
  */
-- 
2.23.0


WARNING: multiple messages have this Message-ID (diff)
From: Gavin Shan <gshan@redhat.com>
To: kvmarm@lists.cs.columbia.edu
Cc: maz@kernel.org, linux-kernel@vger.kernel.org,
	shan.gavin@gmail.com, catalin.marinas@arm.com, will@kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH RFCv2 8/9] kernel/sched: Add cpu_rq_is_locked()
Date: Fri,  8 May 2020 13:29:18 +1000	[thread overview]
Message-ID: <20200508032919.52147-9-gshan@redhat.com> (raw)
In-Reply-To: <20200508032919.52147-1-gshan@redhat.com>

This adds API cpu_rq_is_locked() to check if the CPU's runqueue has been
locked or not. It's used in the subsequent patch to determine the task
wakeup should be executed immediately or delayed.

Signed-off-by: Gavin Shan <gshan@redhat.com>
---
 include/linux/sched.h | 1 +
 kernel/sched/core.c   | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 4418f5cb8324..e68882443da7 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1691,6 +1691,7 @@ extern struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *n
  */
 extern struct task_struct *find_get_task_by_vpid(pid_t nr);
 
+extern bool cpu_rq_is_locked(int cpu);
 extern int wake_up_state(struct task_struct *tsk, unsigned int state);
 extern int wake_up_process(struct task_struct *tsk);
 extern void wake_up_new_task(struct task_struct *tsk);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 9a2fbf98fd6f..30f4a8845495 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -73,6 +73,14 @@ __read_mostly int scheduler_running;
  */
 int sysctl_sched_rt_runtime = 950000;
 
+bool cpu_rq_is_locked(int cpu)
+{
+	struct rq *rq = cpu_rq(cpu);
+
+	return raw_spin_is_locked(&rq->lock) ? true :  false;
+}
+EXPORT_SYMBOL_GPL(cpu_rq_is_locked);
+
 /*
  * __task_rq_lock - lock the rq @p resides on.
  */
-- 
2.23.0

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

WARNING: multiple messages have this Message-ID (diff)
From: Gavin Shan <gshan@redhat.com>
To: kvmarm@lists.cs.columbia.edu
Cc: mark.rutland@arm.com, aarcange@redhat.com, drjones@redhat.com,
	suzuki.poulose@arm.com, maz@kernel.org,
	linux-kernel@vger.kernel.org, eric.auger@redhat.com,
	james.morse@arm.com, shan.gavin@gmail.com,
	catalin.marinas@arm.com, will@kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH RFCv2 8/9] kernel/sched: Add cpu_rq_is_locked()
Date: Fri,  8 May 2020 13:29:18 +1000	[thread overview]
Message-ID: <20200508032919.52147-9-gshan@redhat.com> (raw)
In-Reply-To: <20200508032919.52147-1-gshan@redhat.com>

This adds API cpu_rq_is_locked() to check if the CPU's runqueue has been
locked or not. It's used in the subsequent patch to determine the task
wakeup should be executed immediately or delayed.

Signed-off-by: Gavin Shan <gshan@redhat.com>
---
 include/linux/sched.h | 1 +
 kernel/sched/core.c   | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 4418f5cb8324..e68882443da7 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1691,6 +1691,7 @@ extern struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *n
  */
 extern struct task_struct *find_get_task_by_vpid(pid_t nr);
 
+extern bool cpu_rq_is_locked(int cpu);
 extern int wake_up_state(struct task_struct *tsk, unsigned int state);
 extern int wake_up_process(struct task_struct *tsk);
 extern void wake_up_new_task(struct task_struct *tsk);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 9a2fbf98fd6f..30f4a8845495 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -73,6 +73,14 @@ __read_mostly int scheduler_running;
  */
 int sysctl_sched_rt_runtime = 950000;
 
+bool cpu_rq_is_locked(int cpu)
+{
+	struct rq *rq = cpu_rq(cpu);
+
+	return raw_spin_is_locked(&rq->lock) ? true :  false;
+}
+EXPORT_SYMBOL_GPL(cpu_rq_is_locked);
+
 /*
  * __task_rq_lock - lock the rq @p resides on.
  */
-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-05-08  3:31 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-08  3:29 [PATCH RFCv2 0/9] kvm/arm64: Support Async Page Fault Gavin Shan
2020-05-08  3:29 ` Gavin Shan
2020-05-08  3:29 ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 1/9] arm64: Probe for the presence of KVM hypervisor services during boot Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 2/9] arm/arm64: KVM: Advertise KVM UID to guests via SMCCC Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 3/9] kvm/arm64: Rename kvm_vcpu_get_hsr() to kvm_vcpu_get_esr() Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-26 10:42   ` Mark Rutland
2020-05-26 10:42     ` Mark Rutland
2020-05-26 10:42     ` Mark Rutland
2020-05-27  2:43     ` Gavin Shan
2020-05-27  2:43       ` Gavin Shan
2020-05-27  2:43       ` Gavin Shan
2020-05-27  7:20       ` Marc Zyngier
2020-05-27  7:20         ` Marc Zyngier
2020-05-27  7:20         ` Marc Zyngier
2020-05-28  6:34         ` Gavin Shan
2020-05-28  6:34           ` Gavin Shan
2020-05-28  6:34           ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 4/9] kvm/arm64: Detach ESR operator from vCPU struct Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-26 10:51   ` Mark Rutland
2020-05-26 10:51     ` Mark Rutland
2020-05-26 10:51     ` Mark Rutland
2020-05-27  2:55     ` Gavin Shan
2020-05-27  2:55       ` Gavin Shan
2020-05-27  2:55       ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 5/9] kvm/arm64: Replace hsr with esr Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-26 10:45   ` Mark Rutland
2020-05-26 10:45     ` Mark Rutland
2020-05-26 10:45     ` Mark Rutland
2020-05-27  2:56     ` Gavin Shan
2020-05-27  2:56       ` Gavin Shan
2020-05-27  2:56       ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 6/9] kvm/arm64: Export kvm_handle_user_mem_abort() with prefault mode Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-26 10:58   ` Mark Rutland
2020-05-26 10:58     ` Mark Rutland
2020-05-26 10:58     ` Mark Rutland
2020-05-27  3:01     ` Gavin Shan
2020-05-27  3:01       ` Gavin Shan
2020-05-27  3:01       ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 7/9] kvm/arm64: Support async page fault Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-26 12:34   ` Mark Rutland
2020-05-26 12:34     ` Mark Rutland
2020-05-26 12:34     ` Mark Rutland
2020-05-27  4:05     ` Gavin Shan
2020-05-27  4:05       ` Gavin Shan
2020-05-27  4:05       ` Gavin Shan
2020-05-27  7:37       ` Marc Zyngier
2020-05-27  7:37         ` Marc Zyngier
2020-05-27  7:37         ` Marc Zyngier
2020-05-28  6:32         ` Gavin Shan
2020-05-28  6:32           ` Gavin Shan
2020-05-28  6:32           ` Gavin Shan
2020-05-08  3:29 ` Gavin Shan [this message]
2020-05-08  3:29   ` [PATCH RFCv2 8/9] kernel/sched: Add cpu_rq_is_locked() Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29 ` [PATCH RFCv2 9/9] arm64: Support async page fault Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-08  3:29   ` Gavin Shan
2020-05-26 12:56   ` Mark Rutland
2020-05-26 12:56     ` Mark Rutland
2020-05-26 12:56     ` Mark Rutland
2020-05-27  6:48   ` Paolo Bonzini
2020-05-27  6:48     ` Paolo Bonzini
2020-05-27  6:48     ` Paolo Bonzini
2020-05-28  6:14     ` Gavin Shan
2020-05-28  6:14       ` Gavin Shan
2020-05-28  6:14       ` Gavin Shan
2020-05-28  7:03       ` Marc Zyngier
2020-05-28  7:03         ` Marc Zyngier
2020-05-28  7:03         ` Marc Zyngier
2020-05-28 10:53         ` Paolo Bonzini
2020-05-28 10:53           ` Paolo Bonzini
2020-05-28 10:53           ` Paolo Bonzini
2020-05-28 10:48       ` Paolo Bonzini
2020-05-28 10:48         ` Paolo Bonzini
2020-05-28 10:48         ` Paolo Bonzini
2020-05-28 23:02         ` Gavin Shan
2020-05-28 23:02           ` Gavin Shan
2020-05-28 23:02           ` Gavin Shan
2020-05-29  9:41           ` Marc Zyngier
2020-05-29  9:41             ` Marc Zyngier
2020-05-29  9:41             ` Marc Zyngier
2020-05-29 11:11             ` Paolo Bonzini
2020-05-29 11:11               ` Paolo Bonzini
2020-05-29 11:11               ` Paolo Bonzini
2020-05-31 12:44               ` Marc Zyngier
2020-05-31 12:44                 ` Marc Zyngier
2020-05-31 12:44                 ` Marc Zyngier
2020-06-01  9:21                 ` Paolo Bonzini
2020-06-01  9:21                   ` Paolo Bonzini
2020-06-01  9:21                   ` Paolo Bonzini
2020-06-02  5:44                   ` Gavin Shan
2020-06-02  5:44                     ` Gavin Shan
2020-06-02  5:44                     ` Gavin Shan
2020-05-25 23:39 ` [PATCH RFCv2 0/9] kvm/arm64: Support Async Page Fault Gavin Shan
2020-05-25 23:39   ` Gavin Shan
2020-05-25 23:39   ` Gavin Shan
2020-05-26 13:09 ` Mark Rutland
2020-05-26 13:09   ` Mark Rutland
2020-05-26 13:09   ` Mark Rutland
2020-05-27  2:39   ` Gavin Shan
2020-05-27  2:39     ` Gavin Shan
2020-05-27  2:39     ` Gavin Shan
2020-05-27  7:48     ` Marc Zyngier
2020-05-27  7:48       ` Marc Zyngier
2020-05-27  7:48       ` Marc Zyngier
2020-05-27 16:10       ` Paolo Bonzini
2020-05-27 16:10         ` Paolo Bonzini
2020-05-27 16:10         ` Paolo Bonzini

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=20200508032919.52147-9-gshan@redhat.com \
    --to=gshan@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=drjones@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=james.morse@arm.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=shan.gavin@gmail.com \
    --cc=suzuki.poulose@arm.com \
    --cc=will@kernel.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: link
Be 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.