Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-16 Thread Mark Brown
On Tue, Oct 16, 2012 at 09:25:11AM +, Arnd Bergmann wrote:
> On Tuesday 16 October 2012, Mark Brown wrote:

> > That'd work, but I assume there is some reason why we've got this system
> > of explicitly adding each file.  It's not like cpp can test for the
> > presence of include files.  If we can't figure out why we're not doing
> > this I'd propose we start.

> We discussed renaming asm-generic to asm before, but some people objected
> to the use of #include_next. There is a smaller problem with opening the
> asm/*.h namespace to header files that are not relevant for architctures,
> so I'd prefer to have a well-defined list of headers that are implicitly
> shared, but it's not a technical argument.

Perhaps what we need here is a more elegantly named
asm-default-implementation which is for the headers which almost every
architecture should be using (like clk and gpio) since the APIs should
be at least stubbed in order to avoid making the architecture terminally
annoying.

Alternatively we go to the gpiolib approach where I just made
architectures that want to do fun stuff select a Kconfig symbol and
otherwise the default is directly in the linux/ header.  This was
massively easier to deploy all round.

The case where the current situation is really annoying is the case
where we want to allow some sort of performance optimisation in
something that's normally there and probably doesn't need it; right now
the cost is on the API users to convince every single architecture
maintainer to adopt the API.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-16 Thread Arnd Bergmann
On Tuesday 16 October 2012, Mark Brown wrote:
> On Tue, Oct 16, 2012 at 12:18:05AM +0200, Frederic Weisbecker wrote:
> 
> I came up with stuff for it, though it needed prettyfying.
> 
> > This seems to do the trick:
> 
> > (It's the diff result of ln -s asm-generic include/asm)

Unfortunately, this is not enough, it breaks "make headers_install",
which now needs to decide whether to install a header that is present
in the architecture directory, or to copy one from the asm-generic
directory otherwise.

On the plus side, the symlink breaks checking into CVS and cross-building
from operating systems that don't support posix file systems, so we
might want to do this anyway. ;-)

> That'd work, but I assume there is some reason why we've got this system
> of explicitly adding each file.  It's not like cpp can test for the
> presence of include files.  If we can't figure out why we're not doing
> this I'd propose we start.

We discussed renaming asm-generic to asm before, but some people objected
to the use of #include_next. There is a smaller problem with opening the
asm/*.h namespace to header files that are not relevant for architctures,
so I'd prefer to have a well-defined list of headers that are implicitly
shared, but it's not a technical argument.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-16 Thread Arnd Bergmann
On Tuesday 16 October 2012, Mark Brown wrote:
 On Tue, Oct 16, 2012 at 12:18:05AM +0200, Frederic Weisbecker wrote:
 
 I came up with stuff for it, though it needed prettyfying.
 
  This seems to do the trick:
 
  (It's the diff result of ln -s asm-generic include/asm)

Unfortunately, this is not enough, it breaks make headers_install,
which now needs to decide whether to install a header that is present
in the architecture directory, or to copy one from the asm-generic
directory otherwise.

On the plus side, the symlink breaks checking into CVS and cross-building
from operating systems that don't support posix file systems, so we
might want to do this anyway. ;-)

 That'd work, but I assume there is some reason why we've got this system
 of explicitly adding each file.  It's not like cpp can test for the
 presence of include files.  If we can't figure out why we're not doing
 this I'd propose we start.

We discussed renaming asm-generic to asm before, but some people objected
to the use of #include_next. There is a smaller problem with opening the
asm/*.h namespace to header files that are not relevant for architctures,
so I'd prefer to have a well-defined list of headers that are implicitly
shared, but it's not a technical argument.

Arnd
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-16 Thread Mark Brown
On Tue, Oct 16, 2012 at 09:25:11AM +, Arnd Bergmann wrote:
 On Tuesday 16 October 2012, Mark Brown wrote:

  That'd work, but I assume there is some reason why we've got this system
  of explicitly adding each file.  It's not like cpp can test for the
  presence of include files.  If we can't figure out why we're not doing
  this I'd propose we start.

 We discussed renaming asm-generic to asm before, but some people objected
 to the use of #include_next. There is a smaller problem with opening the
 asm/*.h namespace to header files that are not relevant for architctures,
 so I'd prefer to have a well-defined list of headers that are implicitly
 shared, but it's not a technical argument.

Perhaps what we need here is a more elegantly named
asm-default-implementation which is for the headers which almost every
architecture should be using (like clk and gpio) since the APIs should
be at least stubbed in order to avoid making the architecture terminally
annoying.

Alternatively we go to the gpiolib approach where I just made
architectures that want to do fun stuff select a Kconfig symbol and
otherwise the default is directly in the linux/ header.  This was
massively easier to deploy all round.

The case where the current situation is really annoying is the case
where we want to allow some sort of performance optimisation in
something that's normally there and probably doesn't need it; right now
the cost is on the API users to convince every single architecture
maintainer to adopt the API.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Mark Brown
On Tue, Oct 16, 2012 at 12:18:05AM +0200, Frederic Weisbecker wrote:
> 2012/10/15 Arnd Bergmann :
> > On Monday 15 October 2012, Steven Rostedt wrote:
> >> On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
> >> > 2012/10/15 Steven Rostedt :
> >> > > On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:

> >> > > BTW, is there any rational reason that the include path lookup doesn't
> >> > > just check for the files in include/asm-generic after looking in
> >> > > arch/*/include/asm?

> >> > > Really, the best way would be just to add the default asm files into
> >> > > include/asm-generic and be done with it. I hate the fact that we need 
> >> > > to
> >> > > touch every arch for every generic default file.

> >> > Agreed. I'm including Arnd in the conversation.

> >> As David Howells is doing user space header work, I'll include him too.
> >> Maybe someone can shed some light onto this.

I'll just add my vote there, I've *no* idea why asm-generic isn't in the
include path by default, I could never figure out what that was for.

> > A number of people have expressed the wish to do this through Makefile 
> > magic, but
> > so far nobody has been able to come up with the right incantation.
> >
> > I've spent a day trying to figure it out, and I think Mark Brown tried some 
> > of
> > the same things. It's probably not all that hard for someone who is more 
> > familiar
> > with the Kbuild internals.

I came up with stuff for it, though it needed prettyfying.

> This seems to do the trick:

> (It's the diff result of ln -s asm-generic include/asm)

That'd work, but I assume there is some reason why we've got this system
of explicitly adding each file.  It's not like cpp can test for the
presence of include files.  If we can't figure out why we're not doing
this I'd propose we start.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Frederic Weisbecker
2012/10/15 Arnd Bergmann :
> On Monday 15 October 2012, Steven Rostedt wrote:
>> On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
>> > 2012/10/15 Steven Rostedt :
>> > > On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
>> > > BTW, is there any rational reason that the include path lookup doesn't
>> > > just check for the files in include/asm-generic after looking in
>> > > arch/*/include/asm?
>> > >
>> > > Really, the best way would be just to add the default asm files into
>> > > include/asm-generic and be done with it. I hate the fact that we need to
>> > > touch every arch for every generic default file.
>> >
>> > Agreed. I'm including Arnd in the conversation.
>>
>> As David Howells is doing user space header work, I'll include him too.
>> Maybe someone can shed some light onto this.
>>
>
> A number of people have expressed the wish to do this through Makefile magic, 
> but
> so far nobody has been able to come up with the right incantation.
>
> I've spent a day trying to figure it out, and I think Mark Brown tried some of
> the same things. It's probably not all that hard for someone who is more 
> familiar
> with the Kbuild internals.

This seems to do the trick:

(It's the diff result of ln -s asm-generic include/asm)

diff --git a/include/asm b/include/asm
new file mode 12
index 000..86e8787
--- /dev/null
+++ b/include/asm
@@ -0,0 +1 @@
+asm-generic/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Arnd Bergmann
On Monday 15 October 2012, Steven Rostedt wrote:
> On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
> > 2012/10/15 Steven Rostedt :
> > > On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
> > > BTW, is there any rational reason that the include path lookup doesn't
> > > just check for the files in include/asm-generic after looking in
> > > arch/*/include/asm?
> > >
> > > Really, the best way would be just to add the default asm files into
> > > include/asm-generic and be done with it. I hate the fact that we need to
> > > touch every arch for every generic default file.
> > 
> > Agreed. I'm including Arnd in the conversation.
> 
> As David Howells is doing user space header work, I'll include him too.
> Maybe someone can shed some light onto this.
> 

A number of people have expressed the wish to do this through Makefile magic, 
but
so far nobody has been able to come up with the right incantation.

I've spent a day trying to figure it out, and I think Mark Brown tried some of
the same things. It's probably not all that hard for someone who is more 
familiar
with the Kbuild internals.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Steven Rostedt
On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
> 2012/10/15 Steven Rostedt :
> > On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
> >> On 12 October 2012 19:09, Frederic Weisbecker  wrote:
> >> > diff --git a/arch/arm/include/asm/irq_work.h 
> >> > b/arch/arm/include/asm/irq_work.h
> >> > new file mode 100644
> >> > index 000..f1bffa2
> >> > --- /dev/null
> >> > +++ b/arch/arm/include/asm/irq_work.h
> >> > @@ -0,0 +1 @@
> >> > +#include 
> >> > diff --git a/arch/arm64/include/asm/irq_work.h 
> >> > b/arch/arm64/include/asm/irq_work.h
> >> > new file mode 100644
> >> > index 000..f1bffa2
> >> > --- /dev/null
> >> > +++ b/arch/arm64/include/asm/irq_work.h
> >> > @@ -0,0 +1 @@
> >> > +#include 
> >>
> >> Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
> >> creating new files.
> >>
> >
> > BTW, is there any rational reason that the include path lookup doesn't
> > just check for the files in include/asm-generic after looking in
> > arch/*/include/asm?
> >
> > Really, the best way would be just to add the default asm files into
> > include/asm-generic and be done with it. I hate the fact that we need to
> > touch every arch for every generic default file.
> 
> Agreed. I'm including Arnd in the conversation.

As David Howells is doing user space header work, I'll include him too.
Maybe someone can shed some light onto this.

-- Steve

> 
> >
> > I'd be willing to take a look at fixing this too, when I get a chance.
> >
> > -- Steve
> >
> >


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Frederic Weisbecker
2012/10/15 Steven Rostedt :
> On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
>> On 12 October 2012 19:09, Frederic Weisbecker  wrote:
>> > diff --git a/arch/arm/include/asm/irq_work.h 
>> > b/arch/arm/include/asm/irq_work.h
>> > new file mode 100644
>> > index 000..f1bffa2
>> > --- /dev/null
>> > +++ b/arch/arm/include/asm/irq_work.h
>> > @@ -0,0 +1 @@
>> > +#include 
>> > diff --git a/arch/arm64/include/asm/irq_work.h 
>> > b/arch/arm64/include/asm/irq_work.h
>> > new file mode 100644
>> > index 000..f1bffa2
>> > --- /dev/null
>> > +++ b/arch/arm64/include/asm/irq_work.h
>> > @@ -0,0 +1 @@
>> > +#include 
>>
>> Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
>> creating new files.
>>
>
> BTW, is there any rational reason that the include path lookup doesn't
> just check for the files in include/asm-generic after looking in
> arch/*/include/asm?
>
> Really, the best way would be just to add the default asm files into
> include/asm-generic and be done with it. I hate the fact that we need to
> touch every arch for every generic default file.

Agreed. I'm including Arnd in the conversation.

>
> I'd be willing to take a look at fixing this too, when I get a chance.
>
> -- Steve
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Steven Rostedt
On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
> On 12 October 2012 19:09, Frederic Weisbecker  wrote:
> > diff --git a/arch/arm/include/asm/irq_work.h 
> > b/arch/arm/include/asm/irq_work.h
> > new file mode 100644
> > index 000..f1bffa2
> > --- /dev/null
> > +++ b/arch/arm/include/asm/irq_work.h
> > @@ -0,0 +1 @@
> > +#include 
> > diff --git a/arch/arm64/include/asm/irq_work.h 
> > b/arch/arm64/include/asm/irq_work.h
> > new file mode 100644
> > index 000..f1bffa2
> > --- /dev/null
> > +++ b/arch/arm64/include/asm/irq_work.h
> > @@ -0,0 +1 @@
> > +#include 
> 
> Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
> creating new files.
> 

BTW, is there any rational reason that the include path lookup doesn't
just check for the files in include/asm-generic after looking in
arch/*/include/asm? 

Really, the best way would be just to add the default asm files into
include/asm-generic and be done with it. I hate the fact that we need to
touch every arch for every generic default file.

I'd be willing to take a look at fixing this too, when I get a chance.

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Catalin Marinas
On 12 October 2012 19:09, Frederic Weisbecker  wrote:
> diff --git a/arch/arm/include/asm/irq_work.h b/arch/arm/include/asm/irq_work.h
> new file mode 100644
> index 000..f1bffa2
> --- /dev/null
> +++ b/arch/arm/include/asm/irq_work.h
> @@ -0,0 +1 @@
> +#include 
> diff --git a/arch/arm64/include/asm/irq_work.h 
> b/arch/arm64/include/asm/irq_work.h
> new file mode 100644
> index 000..f1bffa2
> --- /dev/null
> +++ b/arch/arm64/include/asm/irq_work.h
> @@ -0,0 +1 @@
> +#include 

Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
creating new files.

-- 
Catalin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Catalin Marinas
On 12 October 2012 19:09, Frederic Weisbecker fweis...@gmail.com wrote:
 diff --git a/arch/arm/include/asm/irq_work.h b/arch/arm/include/asm/irq_work.h
 new file mode 100644
 index 000..f1bffa2
 --- /dev/null
 +++ b/arch/arm/include/asm/irq_work.h
 @@ -0,0 +1 @@
 +#include asm-generic/irq_work.h
 diff --git a/arch/arm64/include/asm/irq_work.h 
 b/arch/arm64/include/asm/irq_work.h
 new file mode 100644
 index 000..f1bffa2
 --- /dev/null
 +++ b/arch/arm64/include/asm/irq_work.h
 @@ -0,0 +1 @@
 +#include asm-generic/irq_work.h

Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
creating new files.

-- 
Catalin
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Steven Rostedt
On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
 On 12 October 2012 19:09, Frederic Weisbecker fweis...@gmail.com wrote:
  diff --git a/arch/arm/include/asm/irq_work.h 
  b/arch/arm/include/asm/irq_work.h
  new file mode 100644
  index 000..f1bffa2
  --- /dev/null
  +++ b/arch/arm/include/asm/irq_work.h
  @@ -0,0 +1 @@
  +#include asm-generic/irq_work.h
  diff --git a/arch/arm64/include/asm/irq_work.h 
  b/arch/arm64/include/asm/irq_work.h
  new file mode 100644
  index 000..f1bffa2
  --- /dev/null
  +++ b/arch/arm64/include/asm/irq_work.h
  @@ -0,0 +1 @@
  +#include asm-generic/irq_work.h
 
 Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
 creating new files.
 

BTW, is there any rational reason that the include path lookup doesn't
just check for the files in include/asm-generic after looking in
arch/*/include/asm? 

Really, the best way would be just to add the default asm files into
include/asm-generic and be done with it. I hate the fact that we need to
touch every arch for every generic default file.

I'd be willing to take a look at fixing this too, when I get a chance.

-- Steve


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Frederic Weisbecker
2012/10/15 Steven Rostedt rost...@goodmis.org:
 On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
 On 12 October 2012 19:09, Frederic Weisbecker fweis...@gmail.com wrote:
  diff --git a/arch/arm/include/asm/irq_work.h 
  b/arch/arm/include/asm/irq_work.h
  new file mode 100644
  index 000..f1bffa2
  --- /dev/null
  +++ b/arch/arm/include/asm/irq_work.h
  @@ -0,0 +1 @@
  +#include asm-generic/irq_work.h
  diff --git a/arch/arm64/include/asm/irq_work.h 
  b/arch/arm64/include/asm/irq_work.h
  new file mode 100644
  index 000..f1bffa2
  --- /dev/null
  +++ b/arch/arm64/include/asm/irq_work.h
  @@ -0,0 +1 @@
  +#include asm-generic/irq_work.h

 Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
 creating new files.


 BTW, is there any rational reason that the include path lookup doesn't
 just check for the files in include/asm-generic after looking in
 arch/*/include/asm?

 Really, the best way would be just to add the default asm files into
 include/asm-generic and be done with it. I hate the fact that we need to
 touch every arch for every generic default file.

Agreed. I'm including Arnd in the conversation.


 I'd be willing to take a look at fixing this too, when I get a chance.

 -- Steve


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Steven Rostedt
On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
 2012/10/15 Steven Rostedt rost...@goodmis.org:
  On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
  On 12 October 2012 19:09, Frederic Weisbecker fweis...@gmail.com wrote:
   diff --git a/arch/arm/include/asm/irq_work.h 
   b/arch/arm/include/asm/irq_work.h
   new file mode 100644
   index 000..f1bffa2
   --- /dev/null
   +++ b/arch/arm/include/asm/irq_work.h
   @@ -0,0 +1 @@
   +#include asm-generic/irq_work.h
   diff --git a/arch/arm64/include/asm/irq_work.h 
   b/arch/arm64/include/asm/irq_work.h
   new file mode 100644
   index 000..f1bffa2
   --- /dev/null
   +++ b/arch/arm64/include/asm/irq_work.h
   @@ -0,0 +1 @@
   +#include asm-generic/irq_work.h
 
  Just add generic-y += irq_work.h to arch/*/include/asm/Kbuild to avoid
  creating new files.
 
 
  BTW, is there any rational reason that the include path lookup doesn't
  just check for the files in include/asm-generic after looking in
  arch/*/include/asm?
 
  Really, the best way would be just to add the default asm files into
  include/asm-generic and be done with it. I hate the fact that we need to
  touch every arch for every generic default file.
 
 Agreed. I'm including Arnd in the conversation.

As David Howells is doing user space header work, I'll include him too.
Maybe someone can shed some light onto this.

-- Steve

 
 
  I'd be willing to take a look at fixing this too, when I get a chance.
 
  -- Steve
 
 


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Arnd Bergmann
On Monday 15 October 2012, Steven Rostedt wrote:
 On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
  2012/10/15 Steven Rostedt rost...@goodmis.org:
   On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
   BTW, is there any rational reason that the include path lookup doesn't
   just check for the files in include/asm-generic after looking in
   arch/*/include/asm?
  
   Really, the best way would be just to add the default asm files into
   include/asm-generic and be done with it. I hate the fact that we need to
   touch every arch for every generic default file.
  
  Agreed. I'm including Arnd in the conversation.
 
 As David Howells is doing user space header work, I'll include him too.
 Maybe someone can shed some light onto this.
 

A number of people have expressed the wish to do this through Makefile magic, 
but
so far nobody has been able to come up with the right incantation.

I've spent a day trying to figure it out, and I think Mark Brown tried some of
the same things. It's probably not all that hard for someone who is more 
familiar
with the Kbuild internals.

Arnd
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Frederic Weisbecker
2012/10/15 Arnd Bergmann a...@arndb.de:
 On Monday 15 October 2012, Steven Rostedt wrote:
 On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
  2012/10/15 Steven Rostedt rost...@goodmis.org:
   On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:
   BTW, is there any rational reason that the include path lookup doesn't
   just check for the files in include/asm-generic after looking in
   arch/*/include/asm?
  
   Really, the best way would be just to add the default asm files into
   include/asm-generic and be done with it. I hate the fact that we need to
   touch every arch for every generic default file.
 
  Agreed. I'm including Arnd in the conversation.

 As David Howells is doing user space header work, I'll include him too.
 Maybe someone can shed some light onto this.


 A number of people have expressed the wish to do this through Makefile magic, 
 but
 so far nobody has been able to come up with the right incantation.

 I've spent a day trying to figure it out, and I think Mark Brown tried some of
 the same things. It's probably not all that hard for someone who is more 
 familiar
 with the Kbuild internals.

This seems to do the trick:

(It's the diff result of ln -s asm-generic include/asm)

diff --git a/include/asm b/include/asm
new file mode 12
index 000..86e8787
--- /dev/null
+++ b/include/asm
@@ -0,0 +1 @@
+asm-generic/
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-15 Thread Mark Brown
On Tue, Oct 16, 2012 at 12:18:05AM +0200, Frederic Weisbecker wrote:
 2012/10/15 Arnd Bergmann a...@arndb.de:
  On Monday 15 October 2012, Steven Rostedt wrote:
  On Mon, 2012-10-15 at 22:23 +0200, Frederic Weisbecker wrote:
   2012/10/15 Steven Rostedt rost...@goodmis.org:
On Mon, 2012-10-15 at 17:11 +0100, Catalin Marinas wrote:

BTW, is there any rational reason that the include path lookup doesn't
just check for the files in include/asm-generic after looking in
arch/*/include/asm?

Really, the best way would be just to add the default asm files into
include/asm-generic and be done with it. I hate the fact that we need 
to
touch every arch for every generic default file.

   Agreed. I'm including Arnd in the conversation.

  As David Howells is doing user space header work, I'll include him too.
  Maybe someone can shed some light onto this.

I'll just add my vote there, I've *no* idea why asm-generic isn't in the
include path by default, I could never figure out what that was for.

  A number of people have expressed the wish to do this through Makefile 
  magic, but
  so far nobody has been able to come up with the right incantation.
 
  I've spent a day trying to figure it out, and I think Mark Brown tried some 
  of
  the same things. It's probably not all that hard for someone who is more 
  familiar
  with the Kbuild internals.

I came up with stuff for it, though it needed prettyfying.

 This seems to do the trick:

 (It's the diff result of ln -s asm-generic include/asm)

That'd work, but I assume there is some reason why we've got this system
of explicitly adding each file.  It's not like cpp can test for the
presence of include files.  If we can't figure out why we're not doing
this I'd propose we start.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-12 Thread Frederic Weisbecker
This optimization doesn't matter much. But this prepares the
arch headers that we need to add a new API in order to detect
when the arch hooks on the tick to implement the irq work.

This is necessary later to make printk working in nohz CPUs.

Signed-off-by: Frederic Weisbecker 
Cc: Peter Zijlstra 
Cc: Thomas Gleixner 
Cc: Ingo Molnar 
Cc: Andrew Morton 
Cc: Steven Rostedt 
---
 arch/alpha/include/asm/irq_work.h|6 ++
 arch/arm/include/asm/irq_work.h  |1 +
 arch/arm64/include/asm/irq_work.h|1 +
 arch/blackfin/include/asm/irq_work.h |1 +
 arch/frv/include/asm/irq_work.h  |1 +
 arch/hexagon/include/asm/irq_work.h  |1 +
 arch/mips/include/asm/irq_work.h |1 +
 arch/parisc/include/asm/irq_work.h   |1 +
 arch/powerpc/include/asm/irq_work.h  |6 ++
 arch/s390/include/asm/irq_work.h |1 +
 arch/sh/include/asm/irq_work.h   |1 +
 arch/sparc/include/asm/irq_work.h|6 ++
 arch/x86/include/asm/irq_work.h  |   10 ++
 arch/x86/kernel/irq_work.c   |4 ++--
 include/asm-generic/irq_work.h   |9 +
 include/linux/irq_work.h |1 +
 kernel/irq_work.c|7 ---
 17 files changed, 49 insertions(+), 9 deletions(-)
 create mode 100644 arch/alpha/include/asm/irq_work.h
 create mode 100644 arch/arm/include/asm/irq_work.h
 create mode 100644 arch/arm64/include/asm/irq_work.h
 create mode 100644 arch/blackfin/include/asm/irq_work.h
 create mode 100644 arch/frv/include/asm/irq_work.h
 create mode 100644 arch/hexagon/include/asm/irq_work.h
 create mode 100644 arch/mips/include/asm/irq_work.h
 create mode 100644 arch/parisc/include/asm/irq_work.h
 create mode 100644 arch/powerpc/include/asm/irq_work.h
 create mode 100644 arch/s390/include/asm/irq_work.h
 create mode 100644 arch/sh/include/asm/irq_work.h
 create mode 100644 arch/sparc/include/asm/irq_work.h
 create mode 100644 arch/x86/include/asm/irq_work.h
 create mode 100644 include/asm-generic/irq_work.h

diff --git a/arch/alpha/include/asm/irq_work.h 
b/arch/alpha/include/asm/irq_work.h
new file mode 100644
index 000..814ff3d
--- /dev/null
+++ b/arch/alpha/include/asm/irq_work.h
@@ -0,0 +1,6 @@
+#ifndef _ALPHA_IRQ_WORK_H
+#define _ALPHA_IRQ_WORK_H
+
+extern void arch_irq_work_raise(void);
+
+#endif
diff --git a/arch/arm/include/asm/irq_work.h b/arch/arm/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/arm/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/arm64/include/asm/irq_work.h 
b/arch/arm64/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/arm64/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/blackfin/include/asm/irq_work.h 
b/arch/blackfin/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/blackfin/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/frv/include/asm/irq_work.h b/arch/frv/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/frv/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/hexagon/include/asm/irq_work.h 
b/arch/hexagon/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/hexagon/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/mips/include/asm/irq_work.h b/arch/mips/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/mips/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/parisc/include/asm/irq_work.h 
b/arch/parisc/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/parisc/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/powerpc/include/asm/irq_work.h 
b/arch/powerpc/include/asm/irq_work.h
new file mode 100644
index 000..8b9927f
--- /dev/null
+++ b/arch/powerpc/include/asm/irq_work.h
@@ -0,0 +1,6 @@
+#ifndef _ASM_POWERPC_IRQ_WORK_H
+#define _ASM_POWERPC_IRQ_WORK_H
+
+extern void arch_irq_work_raise(void);
+
+#endif
diff --git a/arch/s390/include/asm/irq_work.h b/arch/s390/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/s390/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/sh/include/asm/irq_work.h b/arch/sh/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/sh/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include 
diff --git a/arch/sparc/include/asm/irq_work.h 
b/arch/sparc/include/asm/irq_work.h
new file mode 100644
index 000..1d062a6
--- /dev/null
+++ b/arch/sparc/include/asm/irq_work.h
@@ -0,0 +1,6 @@
+#ifndef ___ASM_SPARC_IRQ_H
+#define ___ASM_SPARC_IRQ_H
+
+extern void arch_irq_work_raise(void);
+
+#endif
diff --git a/arch/x86/include/asm/irq_work.h b/arch/x86/include/asm/irq_work.h
new file mode 100644
index 000..38eed96
--- /dev/null
+++ b/arch/x86/include/asm/irq_work.h
@@ -0,0 +1,10 @@

[RFC PATCH 1/5] irq_work: Move irq_work_raise() declaration/default definition to arch headers

2012-10-12 Thread Frederic Weisbecker
This optimization doesn't matter much. But this prepares the
arch headers that we need to add a new API in order to detect
when the arch hooks on the tick to implement the irq work.

This is necessary later to make printk working in nohz CPUs.

Signed-off-by: Frederic Weisbecker fweis...@gmail.com
Cc: Peter Zijlstra pet...@infradead.org
Cc: Thomas Gleixner t...@linutronix.de
Cc: Ingo Molnar mi...@kernel.org
Cc: Andrew Morton a...@linux-foundation.org
Cc: Steven Rostedt rost...@goodmis.org
---
 arch/alpha/include/asm/irq_work.h|6 ++
 arch/arm/include/asm/irq_work.h  |1 +
 arch/arm64/include/asm/irq_work.h|1 +
 arch/blackfin/include/asm/irq_work.h |1 +
 arch/frv/include/asm/irq_work.h  |1 +
 arch/hexagon/include/asm/irq_work.h  |1 +
 arch/mips/include/asm/irq_work.h |1 +
 arch/parisc/include/asm/irq_work.h   |1 +
 arch/powerpc/include/asm/irq_work.h  |6 ++
 arch/s390/include/asm/irq_work.h |1 +
 arch/sh/include/asm/irq_work.h   |1 +
 arch/sparc/include/asm/irq_work.h|6 ++
 arch/x86/include/asm/irq_work.h  |   10 ++
 arch/x86/kernel/irq_work.c   |4 ++--
 include/asm-generic/irq_work.h   |9 +
 include/linux/irq_work.h |1 +
 kernel/irq_work.c|7 ---
 17 files changed, 49 insertions(+), 9 deletions(-)
 create mode 100644 arch/alpha/include/asm/irq_work.h
 create mode 100644 arch/arm/include/asm/irq_work.h
 create mode 100644 arch/arm64/include/asm/irq_work.h
 create mode 100644 arch/blackfin/include/asm/irq_work.h
 create mode 100644 arch/frv/include/asm/irq_work.h
 create mode 100644 arch/hexagon/include/asm/irq_work.h
 create mode 100644 arch/mips/include/asm/irq_work.h
 create mode 100644 arch/parisc/include/asm/irq_work.h
 create mode 100644 arch/powerpc/include/asm/irq_work.h
 create mode 100644 arch/s390/include/asm/irq_work.h
 create mode 100644 arch/sh/include/asm/irq_work.h
 create mode 100644 arch/sparc/include/asm/irq_work.h
 create mode 100644 arch/x86/include/asm/irq_work.h
 create mode 100644 include/asm-generic/irq_work.h

diff --git a/arch/alpha/include/asm/irq_work.h 
b/arch/alpha/include/asm/irq_work.h
new file mode 100644
index 000..814ff3d
--- /dev/null
+++ b/arch/alpha/include/asm/irq_work.h
@@ -0,0 +1,6 @@
+#ifndef _ALPHA_IRQ_WORK_H
+#define _ALPHA_IRQ_WORK_H
+
+extern void arch_irq_work_raise(void);
+
+#endif
diff --git a/arch/arm/include/asm/irq_work.h b/arch/arm/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/arm/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/arm64/include/asm/irq_work.h 
b/arch/arm64/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/arm64/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/blackfin/include/asm/irq_work.h 
b/arch/blackfin/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/blackfin/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/frv/include/asm/irq_work.h b/arch/frv/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/frv/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/hexagon/include/asm/irq_work.h 
b/arch/hexagon/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/hexagon/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/mips/include/asm/irq_work.h b/arch/mips/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/mips/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/parisc/include/asm/irq_work.h 
b/arch/parisc/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/parisc/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/powerpc/include/asm/irq_work.h 
b/arch/powerpc/include/asm/irq_work.h
new file mode 100644
index 000..8b9927f
--- /dev/null
+++ b/arch/powerpc/include/asm/irq_work.h
@@ -0,0 +1,6 @@
+#ifndef _ASM_POWERPC_IRQ_WORK_H
+#define _ASM_POWERPC_IRQ_WORK_H
+
+extern void arch_irq_work_raise(void);
+
+#endif
diff --git a/arch/s390/include/asm/irq_work.h b/arch/s390/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/s390/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/sh/include/asm/irq_work.h b/arch/sh/include/asm/irq_work.h
new file mode 100644
index 000..f1bffa2
--- /dev/null
+++ b/arch/sh/include/asm/irq_work.h
@@ -0,0 +1 @@
+#include asm-generic/irq_work.h
diff --git a/arch/sparc/include/asm/irq_work.h 
b/arch/sparc/include/asm/irq_work.h
new file mode 100644
index 000..1d062a6
--- /dev/null
+++ b/arch/sparc/include/asm/irq_work.h
@@