All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leonardo Bras <leobras.c@gmail.com>
To: Robert Richter <rric@kernel.org>
Cc: lkcamp@lists.libreplanetbr.org,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Finn Thain <fthain@telegraphics.com.au>,
	"James E.J. Bottomley" <jejb@parisc-linux.org>,
	Helge Deller <deller@gmx.de>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-m68k@lists.linux-m68k.org, oprofile-list@lists.sf.net,
	linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org,
	James Bottomley <James.Bottomley@hansenpartnership.com>
Subject: Re: [PATCH v3 0/7] Remove errors building drivers/DRIVERNAME
Date: Wed, 3 Oct 2018 12:46:15 -0300	[thread overview]
Message-ID: <CADvQ+rETmm2Ag4sijXG-0Aya7B0oww7LkLgijAC+nznyWskkvg@mail.gmail.com> (raw)
In-Reply-To: <20181001075607.GA3776@rric.localdomain>

On Mon, Oct 1, 2018 at 4:56 AM Robert Richter <rric@kernel.org> wrote:
>
> On 27.09.18 23:08:09, Leonardo Br=C3=A1s wrote:
> > This Patchset changes some driver's Makefile to allow them building
> > using the command 'make drivers/DRIVERNAME', if compatible.
> >
> > The changed drivers would return error if the above command was run
> > on them, after an x86 allyesconfig.
>
> I don't see what you are trying to achieve here. Why shouldn't the
> command fail if it is not the intended way to call it? There are a
> couple of use cases where drivers/ is used to share common code over
> different archs and it is not always the intention to build them in
> drivers/ directly.


Sorry, I was not very clear at my reasons why this change is important,
I will try to briefly explain the whole story.

Some weeks ago I was trying to solve a task that needed to change some
compiling options, build the whole kernel (allyesconfig) and look for error=
s.
The problem was: It would take a long time to build everything in my comput=
er.
And many friends with slimmer laptops would take much longer.

So, I was looking for a service that could do that for me, in the cloud.
I found out Gitlab.com offers free 50k minutes of CI for open source projec=
ts,
and allows anyone get this CI time by only forking my project, adding their
changes and pushing to Gitlab.

But Gitlab don't allow 'jobs' to take longer than 3 hours, after that the '=
job'
is killed.

The kernel could not be built in 3h, not with allyesconfig. So, I created a
'job' for each directory in Linux kernel, and tried to build them separatel=
y.
All went fine, except for drivers/, which took over 3 hours.

Most logical thing was to continue the division and create five 'jobs' that
could divide the building time of drivers. To do that, each job took care o=
f a
range of starting letters, as you can see in this link:
https://gitlab.com/LeoBras/linux-next/blob/build-ci/.gitlab-ci.yml

But then I found out some drivers were failing to build. Even if they were =
not
enabled in my .config. After some work I found out some drivers selection i=
s
done in drivers/Makefile, and incompatible drivers would break my build if
tried to call them directly on drivers/DRIVERNAME.

This patchset intents to let the .config selection happen also in
drivers/DRIVERNAME/Makefile, avoiding accidentally building drivers
that are not in .config.

This would allow the kernel to be build on Gitlab CI, and would benefit man=
y
people who wants to help in the kernel development, but have not much
processing power in their machines.

I understand my changes may have mistakes, and I am trying to fix them all.
I thank you any suggestion to make the code better.

Also, I would be happy to know of any other solution to remote build my cha=
nges
and look for warnkings / errors.


Thank you for reading,
Leonardo Bras

WARNING: multiple messages have this Message-ID (diff)
From: Leonardo Bras <leobras.c@gmail.com>
To: Robert Richter <rric@kernel.org>
Cc: lkcamp@lists.libreplanetbr.org,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Finn Thain <fthain@telegraphics.com.au>,
	"James E.J. Bottomley" <jejb@parisc-linux.org>,
	Helge Deller <deller@gmx.de>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-m68k@lists.linux-m68k.org, oprofile-list@lists.sf.net,
	linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org,
	James Bottomley <James.Bottomley@hansenpartnership.com>
Subject: Re: [PATCH v3 0/7] Remove errors building drivers/DRIVERNAME
Date: Wed, 3 Oct 2018 12:46:15 -0300	[thread overview]
Message-ID: <CADvQ+rETmm2Ag4sijXG-0Aya7B0oww7LkLgijAC+nznyWskkvg@mail.gmail.com> (raw)
In-Reply-To: <20181001075607.GA3776@rric.localdomain>

On Mon, Oct 1, 2018 at 4:56 AM Robert Richter <rric@kernel.org> wrote:
>
> On 27.09.18 23:08:09, Leonardo Brás wrote:
> > This Patchset changes some driver's Makefile to allow them building
> > using the command 'make drivers/DRIVERNAME', if compatible.
> >
> > The changed drivers would return error if the above command was run
> > on them, after an x86 allyesconfig.
>
> I don't see what you are trying to achieve here. Why shouldn't the
> command fail if it is not the intended way to call it? There are a
> couple of use cases where drivers/ is used to share common code over
> different archs and it is not always the intention to build them in
> drivers/ directly.


Sorry, I was not very clear at my reasons why this change is important,
I will try to briefly explain the whole story.

Some weeks ago I was trying to solve a task that needed to change some
compiling options, build the whole kernel (allyesconfig) and look for errors.
The problem was: It would take a long time to build everything in my computer.
And many friends with slimmer laptops would take much longer.

So, I was looking for a service that could do that for me, in the cloud.
I found out Gitlab.com offers free 50k minutes of CI for open source projects,
and allows anyone get this CI time by only forking my project, adding their
changes and pushing to Gitlab.

But Gitlab don't allow 'jobs' to take longer than 3 hours, after that the 'job'
is killed.

The kernel could not be built in 3h, not with allyesconfig. So, I created a
'job' for each directory in Linux kernel, and tried to build them separately.
All went fine, except for drivers/, which took over 3 hours.

Most logical thing was to continue the division and create five 'jobs' that
could divide the building time of drivers. To do that, each job took care of a
range of starting letters, as you can see in this link:
https://gitlab.com/LeoBras/linux-next/blob/build-ci/.gitlab-ci.yml

But then I found out some drivers were failing to build. Even if they were not
enabled in my .config. After some work I found out some drivers selection is
done in drivers/Makefile, and incompatible drivers would break my build if
tried to call them directly on drivers/DRIVERNAME.

This patchset intents to let the .config selection happen also in
drivers/DRIVERNAME/Makefile, avoiding accidentally building drivers
that are not in .config.

This would allow the kernel to be build on Gitlab CI, and would benefit many
people who wants to help in the kernel development, but have not much
processing power in their machines.

I understand my changes may have mistakes, and I am trying to fix them all.
I thank you any suggestion to make the code better.

Also, I would be happy to know of any other solution to remote build my changes
and look for warnkings / errors.


Thank you for reading,
Leonardo Bras

  reply	other threads:[~2018-10-03 15:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-28  2:08 [PATCH v3 0/7] Remove errors building drivers/DRIVERNAME Leonardo Brás
2018-09-28  2:08 ` [PATCH v3 1/7] drivers: dio: Avoids building driver if CONFIG_DIO is disabled Leonardo Brás
2018-09-28  2:08 ` [PATCH v3 2/7] drivers: nubus: Avoids building driver if CONFIG_NUBUS " Leonardo Brás
2018-09-28  2:08 ` [PATCH v3 3/7] drivers: parisc: Avoids building driver if CONFIG_PARISC " Leonardo Brás
2018-09-28  7:15   ` James Bottomley
2018-10-04  0:31     ` Leonardo Bras
2018-10-04  0:31       ` Leonardo Bras
2018-10-04  4:41       ` James Bottomley
2018-10-05  2:16         ` Leonardo Bras
2018-10-05  4:10           ` Finn Thain
2018-10-06  4:28           ` Michael Schmitz
2018-10-10  1:01             ` Leonardo Bras
2018-09-28  2:08 ` [PATCH v3 4/7] drivers: zorro: Avoids building proc.o if CONFIG_ZORRO " Leonardo Brás
2018-09-28  2:08 ` [PATCH v3 5/7] drivers: s390: Avoids building drivers if ARCH is not s390 Leonardo Brás
2018-10-01 12:46   ` Heiko Carstens
2018-10-04  1:00     ` Leonardo Bras
2018-10-04  1:00       ` Leonardo Bras
2018-09-28  2:08 ` [PATCH v3 6/7] drivers: oprofile: Avoids building driver from direct make command Leonardo Brás
2018-09-28  2:08 ` [PATCH v3 7/7] drivers: hwtracing: Adds Makefile to enable building from directory Leonardo Brás
2018-10-01  7:56 ` [PATCH v3 0/7] Remove errors building drivers/DRIVERNAME Robert Richter
2018-10-03 15:46   ` Leonardo Bras [this message]
2018-10-03 15:46     ` Leonardo Bras
2018-10-03 23:27     ` Finn Thain
2018-10-04  1:37       ` Leonardo Bras
2018-10-04  2:00         ` Finn Thain
2018-10-10  1:04           ` Leonardo Bras
  -- strict thread matches above, loose matches on Subject: below --
2018-09-28  1:45 Leonardo Brás

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=CADvQ+rETmm2Ag4sijXG-0Aya7B0oww7LkLgijAC+nznyWskkvg@mail.gmail.com \
    --to=leobras.c@gmail.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=deller@gmx.de \
    --cc=fthain@telegraphics.com.au \
    --cc=geert@linux-m68k.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jejb@parisc-linux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=lkcamp@lists.libreplanetbr.org \
    --cc=oprofile-list@lists.sf.net \
    --cc=rric@kernel.org \
    --cc=schwidefsky@de.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 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.