From: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
To: Andrew Jones <drjones@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>, Tejun Heo <tj@kernel.org>,
John Stultz <johnstul@us.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
Peter Zijlstra <peterz@infradead.org>,
David Howells <dhowells@redhat.com>,
Gleb Natapov <gleb@redhat.com>,
Raghavendra <raghavendra.kt@linux.vnet.ibm.com>
Subject: Re: [PATCH 1/1] linux headers: header file(s) changes to enable spinlock use jumplabel
Date: Mon, 20 Feb 2012 23:21:16 +0530 [thread overview]
Message-ID: <4F428814.1060801@linux.vnet.ibm.com> (raw)
In-Reply-To: <ac7058ed-4080-4490-a45b-6b2d4de692ab@zmail17.collab.prod.int.phx2.redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1880 bytes --]
On 02/20/2012 08:30 PM, Andrew Jones wrote:
>
>
> ----- Original Message -----
>> On Mon, Feb 20, 2012 at 11:44:25AM +0530, Raghavendra K T wrote:
>>> On 02/20/2012 10:46 AM, Jeremy Fitzhardinge wrote:
>>> [...]
Hi Drew,
Thanks for the reply
> Hi Raghavendra,
> sorry I didn't get around to starting this discussion myself when
> I first touched the issue. I also bumped into it when attempting
> to rebase pvticketlocks, so I pinged Gleb with the idea to split
> the header. As he's said again now though, he wasn't sure if jump
> labels were necessary in the pvticketlock implementation. In the
> meantime I got busy with other stuff, and didn't get a chance to
> continue/expand the discussion.
>
> I actually think we could consider both of the issues separately
> though.
Right.
Should we split jump_label.h to make sure we can include
> it where it could otherwise get the cyclic dependencies due to
> workqueue.h? The only argument I can see against that is that
> jumplabels may change again, and then we may hit another issue,
> then again, etc., but handling them like this case by case isn't
> very clean.
Hmm..Handling the way it is handled by me sometime looks ugly to me.
The patch I have posted is only important set of changes. But for
complete yesconfig to work, it still would require change something like
below I am attaching, which (needs 24 file changes) makes it more ugly.
Only point is I can continue testing paravirt spinlock on tip.
Perhaps we need jump_label.h to define a "minimal
> jump label", and then we can create an "extended jump label",
> which has rate limiting and other capabilities.
>
I completely agree. seeing that, you have not started that, it seems
it's good idea for me to take a look at that option, (but may be at
slower pace considering some changes I require (TODO) for kvm paravirt
spinlock).
> Drew
>
>
--->8---
---
[-- Attachment #2: header_recursion_minor.patch --]
[-- Type: text/x-patch, Size: 8399 bytes --]
diff --git a/crypto/crypto_wq.c b/crypto/crypto_wq.c
index adad92a..e372359 100644
--- a/crypto/crypto_wq.c
+++ b/crypto/crypto_wq.c
@@ -11,6 +11,7 @@
*
*/
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/module.h>
#include <crypto/algapi.h>
diff --git a/include/linux/pm.h b/include/linux/pm.h
index e4982ac..64bf90b 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -22,8 +22,8 @@
#define _LINUX_PM_H
#include <linux/list.h>
-#include <linux/workqueue.h>
#include <linux/spinlock.h>
+#include <linux/workqueue.h>
#include <linux/wait.h>
#include <linux/timer.h>
#include <linux/completion.h>
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index ee547c1..5872748 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -5,6 +5,7 @@
#define __NET_NET_NAMESPACE_H
#include <linux/atomic.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/list.h>
#include <linux/sysctl.h>
diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c
index f55fcf6..66b4cb2 100644
--- a/kernel/trace/power-traces.c
+++ b/kernel/trace/power-traces.c
@@ -6,6 +6,7 @@
#include <linux/string.h>
#include <linux/types.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/sched.h>
#include <linux/module.h>
diff --git a/kernel/trace/rpm-traces.c b/kernel/trace/rpm-traces.c
index 4b3b5ea..8fa92f4 100644
--- a/kernel/trace/rpm-traces.c
+++ b/kernel/trace/rpm-traces.c
@@ -6,6 +6,7 @@
#include <linux/string.h>
#include <linux/types.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/sched.h>
#include <linux/module.h>
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index c212a7f..b34d241 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -8,8 +8,8 @@
*
*/
-#include <linux/workqueue.h>
#include <linux/spinlock.h>
+#include <linux/workqueue.h>
#include <linux/kthread.h>
#include <linux/debugfs.h>
#include <linux/uaccess.h>
diff --git a/net/core/dst.c b/net/core/dst.c
index 43d94ce..f3a3c24 100644
--- a/net/core/dst.c
+++ b/net/core/dst.c
@@ -9,6 +9,7 @@
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/kernel.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/mm.h>
#include <linux/module.h>
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 0e950fd..bb284b5 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -1,3 +1,4 @@
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/rtnetlink.h>
#include <linux/cache.h>
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 5b228f9..a390277 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -13,6 +13,7 @@
*
*/
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <net/xfrm.h>
#include <linux/pfkeyv2.h>
diff --git a/drivers/media/video/gspca/jl2005bcd.c b/drivers/media/video/gspca/jl2005bcd.c
index 53f58ef..86ae21c 100644
--- a/drivers/media/video/gspca/jl2005bcd.c
+++ b/drivers/media/video/gspca/jl2005bcd.c
@@ -20,6 +20,7 @@
#define MODULE_NAME "jl2005bcd"
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/slab.h>
#include "gspca.h"
diff --git a/drivers/media/video/gspca/sq905.c b/drivers/media/video/gspca/sq905.c
index 2fe3c29..b3916d3 100644
--- a/drivers/media/video/gspca/sq905.c
+++ b/drivers/media/video/gspca/sq905.c
@@ -37,6 +37,7 @@
#define MODULE_NAME "sq905"
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/slab.h>
#include "gspca.h"
diff --git a/drivers/media/video/gspca/sq905c.c b/drivers/media/video/gspca/sq905c.c
index ae78363..b7026f8 100644
--- a/drivers/media/video/gspca/sq905c.c
+++ b/drivers/media/video/gspca/sq905c.c
@@ -31,6 +31,7 @@
#define MODULE_NAME "sq905c"
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/slab.h>
#include "gspca.h"
diff --git a/drivers/media/video/gspca/vicam.c b/drivers/media/video/gspca/vicam.c
index 911152e..fd5db41 100644
--- a/drivers/media/video/gspca/vicam.c
+++ b/drivers/media/video/gspca/vicam.c
@@ -31,6 +31,7 @@
#define MODULE_NAME "vicam"
#define HEADER_SIZE 64
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/slab.h>
#include <linux/firmware.h>
diff --git a/drivers/net/ethernet/mellanox/mlx4/catas.c b/drivers/net/ethernet/mellanox/mlx4/catas.c
index 915e947..83d03ef 100644
--- a/drivers/net/ethernet/mellanox/mlx4/catas.c
+++ b/drivers/net/ethernet/mellanox/mlx4/catas.c
@@ -31,6 +31,7 @@
* SOFTWARE.
*/
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/module.h>
diff --git a/drivers/net/wimax/i2400m/sdio-rx.c b/drivers/net/wimax/i2400m/sdio-rx.c
index fb6396d..df520c0 100644
--- a/drivers/net/wimax/i2400m/sdio-rx.c
+++ b/drivers/net/wimax/i2400m/sdio-rx.c
@@ -60,6 +60,7 @@
*
* i2400ms_rx_release()
*/
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/wait.h>
#include <linux/skbuff.h>
diff --git a/drivers/net/wimax/i2400m/usb-rx.c b/drivers/net/wimax/i2400m/usb-rx.c
index e325768..3df7308 100644
--- a/drivers/net/wimax/i2400m/usb-rx.c
+++ b/drivers/net/wimax/i2400m/usb-rx.c
@@ -82,6 +82,7 @@
*
* i2400mu_rx_release() called from i2400mu_bus_dev_stop()
*/
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/slab.h>
#include <linux/usb.h>
diff --git a/drivers/usb/wusbcore/wa-nep.c b/drivers/usb/wusbcore/wa-nep.c
index f67f7f1..9352e3f 100644
--- a/drivers/usb/wusbcore/wa-nep.c
+++ b/drivers/usb/wusbcore/wa-nep.c
@@ -49,6 +49,7 @@
* endpoint; when data is ready, this
* does the dispatching.
*/
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/ctype.h>
#include <linux/slab.h>
diff --git a/drivers/uwb/umc-bus.c b/drivers/uwb/umc-bus.c
index 82a84d5..287ed00 100644
--- a/drivers/uwb/umc-bus.c
+++ b/drivers/uwb/umc-bus.c
@@ -7,6 +7,7 @@
*/
#include <linux/kernel.h>
#include <linux/sysfs.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/module.h>
#include <linux/uwb/umc.h>
diff --git a/fs/ocfs2/cluster/quorum.c b/fs/ocfs2/cluster/quorum.c
index 8f9cea1..663eaa5 100644
--- a/fs/ocfs2/cluster/quorum.c
+++ b/fs/ocfs2/cluster/quorum.c
@@ -44,6 +44,7 @@
* and if they're the last, they fire off the decision.
*/
#include <linux/kernel.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/reboot.h>
diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
index 26c1f78..253daaf 100644
--- a/include/drm/ttm/ttm_memory.h
+++ b/include/drm/ttm/ttm_memory.h
@@ -28,8 +28,8 @@
#ifndef TTM_MEMORY_H
#define TTM_MEMORY_H
-#include <linux/workqueue.h>
#include <linux/spinlock.h>
+#include <linux/workqueue.h>
#include <linux/wait.h>
#include <linux/errno.h>
#include <linux/kobject.h>
diff --git a/include/linux/connector.h b/include/linux/connector.h
index 3c9c54f..5140306 100644
--- a/include/linux/connector.h
+++ b/include/linux/connector.h
@@ -78,6 +78,7 @@ struct cn_msg {
#include <linux/atomic.h>
#include <linux/list.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <net/sock.h>
diff --git a/include/linux/memstick.h b/include/linux/memstick.h
index 690c35a..df1fe98 100644
--- a/include/linux/memstick.h
+++ b/include/linux/memstick.h
@@ -12,6 +12,7 @@
#ifndef _MEMSTICK_H
#define _MEMSTICK_H
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/scatterlist.h>
#include <linux/device.h>
diff --git a/include/linux/timer.h b/include/linux/timer.h
index 25bd863..d05e5ae 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -1,6 +1,7 @@
#ifndef _LINUX_TIMER_H
#define _LINUX_TIMER_H
+#include <linux/lockdep.h>
#include <linux/list.h>
#include <linux/stddef.h>
#include <linux/stringify.h>
diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
index 7650139..e7fd391 100644
--- a/net/nfc/nci/core.c
+++ b/net/nfc/nci/core.c
@@ -28,6 +28,7 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": %s: " fmt, __func__
#include <linux/types.h>
+#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/completion.h>
#include <linux/export.h>
next prev parent reply other threads:[~2012-02-20 17:52 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-17 8:25 [PATCH 1/1] linux headers: header file(s) changes to enable spinlock use jumplabel Raghavendra K T
2012-02-18 23:21 ` Jeremy Fitzhardinge
2012-02-19 9:24 ` Gleb Natapov
2012-02-20 5:16 ` Jeremy Fitzhardinge
2012-02-20 6:14 ` Raghavendra K T
2012-02-20 9:33 ` Gleb Natapov
2012-02-20 15:00 ` Andrew Jones
2012-02-20 17:51 ` Raghavendra K T [this message]
2012-02-21 15:23 ` Andrew Jones
2012-02-22 11:55 ` Raghavendra K T
2012-02-22 10:48 ` Raghavendra K T
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=4F428814.1060801@linux.vnet.ibm.com \
--to=raghavendra.kt@linux.vnet.ibm.com \
--cc=dhowells@redhat.com \
--cc=drjones@redhat.com \
--cc=gleb@redhat.com \
--cc=jeremy@goop.org \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=vatsa@linux.vnet.ibm.com \
/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).