public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Thomas Hellström" <thomas@tungstengraphics.com>
To: Arjan van de Ven <arjan@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>,
	Dave Airlie <airlied@redhat.com>,
	linux-kernel@vger.kernel.org, tglx@linutronix.de,
	mingo@redhat.com
Subject: Re: [PATCH] x86: create array based interface to change page attribute
Date: Wed, 02 Apr 2008 08:30:46 +0200	[thread overview]
Message-ID: <47F32816.4060806@tungstengraphics.com> (raw)
In-Reply-To: <47F2B788.1030101@linux.intel.com>

Arjan van de Ven wrote:
> Thomas Hellström wrote:
>> Arjan van de Ven wrote:
>>> Thomas Hellström wrote:
>>>> Given this problem, the previously mentioned use-case, and the fact 
>>>> that we mostly really use user-space mappings,
>>>> Is there a possibility we could add the following functions to 
>>>> Dave's patch (provided they would work as intended, of course, 
>>>> namely invalidate / bring back the kernel mapping).
>>>
>>> sadly there are multiple mappings, both in theory and practice.
>>> Especially the _np / _p functions specifically work on only the 
>>> mapping you specify.
>>>
>>> For this to work we would need to somehow make a "mark all mappings 
>>> NP, but please only do the kernel ones" kind of thing.
>>> The semantics of that are... lets say messy at best.
>> Hmm, I'm not sure I follow you here. Are you saying that it's illegal 
>> to have an NP mapping of a page (which, If I understand it correctly, 
>> means no mapping at all) at the same time as you have a, say 
>> user-space WC mapping pointing to the same physical page?
>
> no.
> What I'm saying is that even if you make one mapping NP, it's hard to 
> know you got all of them,
> even just the kernel one.
>
>>
>> I was under the impression that calling CPA on the kernel mapping of 
>> that page would do the rest?
>
> this is not a correct assumption in general, especially not for things 
> like
> "present".
> If a page is mapped 3 times in the kernel, and you set one to "np", 
> the others
> WILL stay mapped.
>
> (and CPA itself no longer exists period ;)
But what mappings are there,  immediately after alloc_page(), that 
set_memory_np won't catch? Certainly kmap_atomic() used to leave some 
stale mappings floating around, but that has been fixed as far as I can 
tell, and I guess we must be able to assume that a driver keeps track of 
its own kernel mappings and kill them before calling set_memory_np.

Drivers relying on set_memory_uc touching all mappings the driver hasn't 
set up itself must then have the same problem and needs to be fixed; 
referring in particular to agpgart for which driver the old CPA 
functionality was once created, IIRC.

We should probably get this right as soon as possible, as the agpgart 
driver is (and has for the last couple of years been) relying on wc / uc 
aliasing to be legal. If we can fix this with set_memory_np / 
set_memory_p that would be great, and would have some additional 
benefits for the drm memory manager as well.

/Thomas







  reply	other threads:[~2008-04-02  6:31 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-31  5:19 [PATCH] x86: create array based interface to change page attribute Dave Airlie
2008-03-31  6:54 ` Thomas Hellström
2008-03-31  9:33   ` Arjan van de Ven
2008-03-31 11:04     ` Thomas Hellström
2008-03-31  7:25 ` Andi Kleen
2008-03-31  7:55   ` Thomas Hellström
2008-03-31  8:38     ` Andi Kleen
2008-03-31  9:06       ` Thomas Hellström
2008-03-31  9:18         ` Andi Kleen
2008-03-31 11:10           ` Thomas Hellström
2008-03-31 16:08             ` Arjan van de Ven
2008-03-31 16:41               ` Thomas Hellström
2008-03-31 16:49                 ` Arjan van de Ven
2008-03-31 17:26                   ` Thomas Hellström
2008-04-01 20:58                     ` Arjan van de Ven
2008-04-01 21:29                       ` Thomas Hellström
2008-04-01 22:30                         ` Arjan van de Ven
2008-04-02  6:30                           ` Thomas Hellström [this message]
2008-04-02  6:35                             ` Arjan van de Ven
2008-04-02  6:59                               ` Thomas Hellström
2008-04-02 14:01                                 ` Arjan van de Ven
2008-04-02 17:57                                   ` Thomas Hellström
2008-04-07 18:23                                     ` Jesse Barnes
2008-04-07 19:51                                       ` Thomas Hellström
2008-04-07 19:59                                         ` Jesse Barnes
2008-04-07 20:46                                           ` Thomas Hellström
2008-04-07 20:57                                             ` Arjan van de Ven
2008-04-08  6:12                                               ` Thomas Hellström
2008-04-07 21:04                                             ` Jesse Barnes
2008-04-08  6:21                                               ` Thomas Hellström
2008-04-08 14:27                                                 ` Jesse Barnes
2008-04-07 20:56                                           ` Arjan van de Ven
2008-04-07 21:02                                             ` Jesse Barnes
2008-04-07 21:09                                               ` Jesse Barnes
2008-03-31  9:56   ` Arjan van de Ven
2008-03-31 11:21   ` Dave Airlie
2008-03-31 11:46     ` Andi Kleen
2008-04-02  1:35       ` Dave Airlie
2008-04-01 18:20 ` Arjan van de Ven

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=47F32816.4060806@tungstengraphics.com \
    --to=thomas@tungstengraphics.com \
    --cc=airlied@redhat.com \
    --cc=andi@firstfloor.org \
    --cc=arjan@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    /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