From: Attilio Rao <attilio.rao@citrix.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"mingo@redhat.com" <mingo@redhat.com>,
"hpa@zytor.com" <hpa@zytor.com>,
"x86@kernel.org" <x86@kernel.org>,
Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>
Subject: Re: [PATCH v4 1/2] XEN/X86: Improve semantic support for x86_init.mapping.pagetable_reserve
Date: Thu, 23 Aug 2012 18:13:39 +0100 [thread overview]
Message-ID: <503664C3.7010301@citrix.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1208231800530.2856@ionos>
On 23/08/12 18:14, Thomas Gleixner wrote:
> On Thu, 23 Aug 2012, Attilio Rao wrote:
>
>> On 23/08/12 16:46, Thomas Gleixner wrote:
>>
>>> On Wed, 22 Aug 2012, Attilio Rao wrote:
>>>
>>>
>>>
>>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
>>>> pgt_buf_start, but still bigger than it.
>>>>
>>>>
>>> What's the purpose of this and how is this going to be used and how is
>>> it useful at all?
>>>
>>>
>> (Just replying here as all the other your comments are derivative)
>> Looks like you are missing the whole point of the patch.
>> What the patch is supposed to do is just to "enforce a correct semantic for
>> the setup function" and not fix an actual problem found in the code.
>> This means that after the patch you know exactly what expect in terms of
>> semantic by the function and the callers will work following it.
>>
>> Otherwise, what could happen is that if one day for a reason or another begin
>> start being different from pgt_buf_start this function will just break
>> silently, reintroducing the original problem in a different form.
>>
> Which original problem?
>
>
This one:
http://marc.info/?l=linux-kernel&m=129901609503574
http://marc.info/?l=linux-kernel&m=130133909408229
and more specifically the one fixed in:
commit 279b706bf800b5967037f492dbe4fc5081ad5d0f
Author: Stefano Stabellini<stefano.stabellini@eu.citrix.com>
Date: Thu Apr 14 15:49:41 2011 +0100
x86,xen: introduce x86_init.mapping.pagetable_reserve
>> I think this was clarified by the 0/2 but evidently you completely missed it.
>>
> No, I did not miss it. And it's still not telling what the whole thing
> is about.
>
> There is no reason why start should ever be different. So your whole
> argument is that someone might change the call site of
> x86_init.mapping.pagetable_reserve().
>
My actual reason is that I want a clear semantic for this function and
enforce it.
> And then you tell in 1/2 changelog:
>
> - Allow xen_mapping_pagetable_reserve() to handle a start different from
> pgt_buf_start, but still bigger than it.
>
> without giving a rationale why this is necessary and why this can ever
> happen. It's wrong to begin with to feed that function something else
> than pgt_buf_start, period.
>
> Don't misunderstand me. I'm not against documenting and not against
> making code safe and less error prone, but we do not add checks just
> because some moron might change the callee arguments to random
> nonsense or because some tinkerer might use the same function for
> something else.
>
> Following your argumentation we'd need to plaster the kernel code with
> sanity checks. This is not a random Java API used by a gazillion of
> code monkeys; it's low level architecture code and not a driver
> API. People who touch that code should better know what they are
> doing.
>
You seriously think that adding a single-check, that will be certainly
skipped (now), in a boot-time function is going to add any performance
burden?
> What you are doing is actively wrong. You suggest that it's fine to
> call that function with something different than pgt_buf_start as the
> start argument. That's complete nonsense. The early pages are
> allocated bottom up beginning at pgt_buf_start. So what the heck would
> make it sane to change that argument ever?
>
If you really don't like this approach, at this point I think the best
thing to do is to assume that the start address will be pgt_buf_start
and loose the starting argument at all.
If you agree I can make a patch for that.
Attilio
next prev parent reply other threads:[~2012-08-23 17:27 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-22 15:08 [PATCH v4 0/2] XEN/X86: Document x86_init.mapping.pagetable_reserve and enforce a better semantic Attilio Rao
2012-08-22 15:08 ` [PATCH v4 1/2] XEN/X86: Improve semantic support for x86_init.mapping.pagetable_reserve Attilio Rao
2012-08-23 15:46 ` Thomas Gleixner
2012-08-23 15:44 ` Attilio Rao
2012-08-23 17:14 ` Thomas Gleixner
2012-08-23 17:13 ` Attilio Rao [this message]
2012-08-24 10:03 ` Borislav Petkov
2012-08-24 10:10 ` Attilio Rao
2012-08-24 11:36 ` Konrad Rzeszutek Wilk
2012-08-24 11:57 ` Stefano Stabellini
2012-08-24 13:00 ` Thomas Gleixner
2012-08-24 13:24 ` Attilio Rao
2012-08-24 13:45 ` Borislav Petkov
2012-08-24 15:18 ` Thomas Gleixner
2012-08-24 13:32 ` Stefano Stabellini
2012-08-24 15:20 ` Thomas Gleixner
2012-08-24 17:27 ` Stefano Stabellini
2012-08-24 20:10 ` Thomas Gleixner
2012-08-22 15:08 ` [PATCH v4 2/2] XEN: Document the semantic of x86_init.mapping.pagetable_reserve Attilio Rao
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=503664C3.7010301@citrix.com \
--to=attilio.rao@citrix.com \
--cc=Stefano.Stabellini@eu.citrix.com \
--cc=hpa@zytor.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox