Re: [GIT PULL] Second set of RISC-V updates for v5.5-rc1
From: Anup Patel
Date: Fri Dec 06 2019 - 16:16:00 EST
On Sat, Dec 7, 2019 at 2:42 AM Carlos Eduardo de Paula <me@xxxxxxxxxxxxx> wrote:
>
> On Thu, Dec 5, 2019 at 8:46 PM Alistair Francis
> <Alistair.Francis@xxxxxxx> wrote:
> >
> > On Thu, 2019-12-05 at 15:29 -0800, Alistair Francis wrote:
> > > On Thu, 2019-12-05 at 15:12 -0800, Paul Walmsley wrote:
> > > > On Thu, 5 Dec 2019, Alistair Francis wrote:
> > > >
> > > > > On Wed, 2019-12-04 at 18:54 -0800, Paul Walmsley wrote:
> > > > > > On Wed, 4 Dec 2019, Alistair Francis wrote:
> > > > > >
> > > > > > > It is too much to expect every distro to maintain a defconfig
> > > > > > > for
> > > > > > > RISC-V.
> > > > > >
> > > > > > The major Linux distributions maintain their own kernel
> > > > > > configuration
> > > > > > files, completely ignoring kernel defconfigs. This has been so
> > > > > > for a
> > > > > > long time.
> > > > >
> > > > > That might be true for the traditional "desktop" distros, but
> > > > > embedded
> > > > > distros (the main target for RISC-V at the moment) don't
> > > > > generally
> > > > > do
> > > > > this.
> > > >
> > > > Maybe in this discussion we can agree to use the common
> > > > distinction
> > > > between distributions and distribution build frameworks, where
> > > > users
> > > > of
> > > > the latter need to be more technically sophisticated - as opposed
> > > > to
> > > > downloading a disk image.
> > >
> > > Why is there a distinction?
> > >
> > > There are lots of disk images that you can just download which are
> > > based on OE or buildroot. Lots of people use OE images and never
> > > realise it.
> > >
> > > In the same way that there are build enviroments based on the
> > > standard
> > > "desktop" distros. In both cases these are distros.
> > >
> > > > > > > Which is why we currently use the defconfig as a base and
> > > > > > > apply
> > > > > > > extra features that distro want on top.
> > > > > >
> > > > > > As you know, since you've worked on some of the distribution
> > > > > > builder
> > > > > > frameworks (not distributions) like OE and Buildroot, those
> > > > > > build
> > > > > > systems have sophisticated kernel configuration patching and
> > > > > > override
> > > > > > systems that can disable the debug options if the maintainers
> > > > > > think
> > > > > > it's a good idea to do that.
> > > > >
> > > > > Yes they do. As I said, we start with the defconfig and then
> > > > > apply
> > > > > config changes on top. Every diversion is a maintainence burden
> > > > > so
> > > > > where possible we don't make any changed. All of the QEMU
> > > > > machines
> > > > > currently don't have config changes (and hopefully never will) as
> > > > > it's
> > > > > a pain to maintain.
> > > >
> > > > I'm open to your concerns here. Can you help me understand why
> > > > adding a
> > > > few lines to the kernel configuration fragments to disable the
> > > > debug
> > > > options creates maintenance pain? Isn't it just a matter of adding
> > > > a
> > >
> > > For one, we have the same burden as you do.
> > >
> > > You feel that it's too much of a burden to have a config fragment in
> > > tree to enable debug. You clearly feel that having a
> > > `extra_debug.config` fragment for you is too much of a burden, why is
> > > it not a burden for distros?
> > >
> > > > few
> > > > lines to disable the debug options, and -- since you clearly don't
> > > > want
> > > > them enabled for any platform -- just leaving them in there?
> > >
> > > Leave them in where?
> > >
> > > No other architecture does this. Now we have to have a special config
> > > fragment added just for RISC-V. Why is RISC-V so special that it
> > > needs
> > > it's own fragment that other arches don't have?
> > >
> > > > > > > > distros and benchmarkers will create their own Kconfigs for
> > > > > > > > their
> > > > > > > > needs.
> > > > > > >
> > > > > > > Like I said, that isn't true. After this patch is applied
> > > > > > > (and
> > > > > > > it
> > > > > > > makes it to a release) all OE users will now have a slower
> > > > > > > RISC-V
> > > > > > > kernel.
> > > > > >
> > > > > > OE doesn't have any RISC-V support upstream, so pure OE users
> > > > > > won't
> > > > > > notice
> > > > >
> > > > > That is just not true.
> > > >
> > > > After getting your response, I reviewed the OE-core tree that I
> > > > have
> > > > here,
> > > > which is based on following the OE-core "getting started"
> > > > instructions.
> > > > The result is a tree with no RISC-V machine support. Looking again
> > > > at
> > > > those instructions, I see that they check out the last release,
> > > > rather
> > > > than the current top of the tree; and the current top of tree does
> > > > have a
> > > > QEMU RISC-V machine. So this statement of yours is correct, and I
> > > > was in
> > > > error about the current top-of-tree OE-core support.
> > >
> > > The last release (Zeus) also has RISC-V support....
> >
> > Whoops, I left the dots to remind me to come back and double check
> > this, but then I forgot to remove them.
> >
> > >
> > > > > You talk later about misinformation but this is a blatent lie.
> > > >
> > > > This isn't acceptable. We've met each other in person, and I've
> > > > considered you an enjoyable and trustworthy person to discuss
> > > > technical
> > > > issues with. This is the first time that you've ever publicly
> > > > accused me
> > > > of misrepresenting an issue with intent to deceive. There's a big
> > > > difference between stating that someone is quoting misinformation
> > > > and
> > > > accusing someone of bad intentions. I expect an apology from you.
> > >
> > > I didn't say you had bad intentions. I was just pointing out that you
> > > spent the time researching points that match your argument, but
> > > didn't
> > > check to see what current RISC-V support is.
> > >
> > > I don't see a difference between saying someone is spreading
> > > misinformation and lying, but I am sorry if it upset you.
> >
> > Just to clarify, I am sorry that I upset you. I did not mean to do
> > that.
> >
> > I do not appriate you saying that I am spreading misinformation,
> > espicially when there are numbers to back up the claim of slowing down
> > defconfig users.
> >
> > Alistair
> >
> > >
> > > > > > > Slowing down all users to help kernel developers debug seems
> > > > > > > like
> > > > > > > the wrong direction. Kernel developers should know enough to
> > > > > > > be
> > > > > > > able
> > > > > > > to turn on the required configs, why does this need to be
> > > > > > > the
> > > > > > > default?
> > > > > >
> > > > > > It's clear you strongly disagree with the decision to do
> > > > > > this. It's
> > > > > > certainly your right to do so. But it's not good to spread
> > > > > > misinformation about how changing the defconfigs "slow[s] down
> > > > > > all
> > > > > > users," or
> > > > >
> > > > > What misinformation?
> > >
> > > Somehow it looks like you dropped this paragraph from my response,
> > > I'll
> > > just add it back in:
> > >
> > > ******
> > > Anup shared benchmarking results indicating that this change has a
> > > 12%
> > > performance decrease for everyone who uses the defconfig without
> > > removing this change.
> > > ******
> > >
> > > > You've already acknowledged in your response that the major Linux
> > > > distributions don't use defconfigs. So it's clear that your
> > >
> > > What do you mean major?
> > >
> > > AFAIK OE and buildroot are the only distros that have first class
> > > RISC-
> > > V support. That seems pretty major to me.
> > >
> > > > statement is
> > > > false, and rather than admitting that you're wrong, you're doubling
> > > > down.
> > >
> > > Doubling down on what? I never claimed all distros use defconfigs.
> > >
> > > > > > exaggerating the difficulty for downstream software
> > > > > > environments
> > > > > > to
> > > > > > back this change out if they wish.
> > > > >
> > > > > If you think it is that easy can you please submit the patches?
> > > >
> > > > For my part, I'd be happy if the current RISC-V OE and Buildroot
> > > > users who
> > > > don't change the kernel configs run with the defconfig debug
> > > > options
> > > > enabled right now. So, I don't plan to send patches for them.
> > >
> > > That is what will continue to happen. All users will be expected to
> > > live with a 12% performance impact.
> > >
> > > > > I understand it's easy to make decisions that simplfy your flow,
> > > > > but
> > > > > this has real negative consequences in terms of performance for
> > > > > users
> > > > > or complexity for maintainers. It would be nice if you take other
> > > > > users
> > > > > /developers into account before merging changes.
> > > >
> > > > As stated earlier, I'm open to reconsidering if it indeed is
> > > > onerous,
> > > > and
> > > > not just a matter of patching a few lines of kernel configuration
> > > > fragments in OE and Buildroot once.
> > >
> > > I don't understand, if patching a config is so easy why not just have
> > > a
> > > fragment in the kernel tree and you can use that when you build a
> > > kernel? This is what Daniel Thompson pointed out. That would avoid
> > > this
> > > issue and have it easy for you to build a kernel with debug support.
> > > How is that not the best solution?
> > >
> > > AFIAK no other architecture has all these debug options enabled in
> > > the
> > > defconfi, why is RISC-V so special?
> > >
> > > Alistair
> > >
> > > >
> > > > - Paul
>
> Folks, isn't viable having a defconfig and a defconfig_debug. This
> would address both cases and avoid putting a penalty on people that
> are already using Risc-V boards or VMs for building software.
Having defconfig and debug_defconfig will result is very similar defconfigs.
Better approach is to have a fragmented .config for extra DEBUG options.
Here's link to my patch for fragmented debug.config (please review):
https://lkml.org/lkml/2019/12/5/614
Regards,
Anup