On Thu, 2009-10-08 at 08:45 +0200, Joakim Tjernlund wrote:
> > Generic code should sort it out in handle_mm_fault() (or earlier if it
> > can't find a VMA at all).
>
> How can it? You need to know more that just read and write.
It does. It's going to look for the VMA, which will tell it what is
Benjamin Herrenschmidt wrote on 08/10/2009 02:28:19:
>
> On Thu, 2009-10-08 at 02:19 +0200, Joakim Tjernlund wrote:
> > Benjamin Herrenschmidt wrote on 08/10/2009
> > 02:04:56:
> > >
> > >
> > > > Yes it does. If one adds HWEXEC it will fail, right?
> > >
> > > Why ? We can just filter out DSISR
On Thu, 2009-10-08 at 02:19 +0200, Joakim Tjernlund wrote:
> Benjamin Herrenschmidt wrote on 08/10/2009
> 02:04:56:
> >
> >
> > > Yes it does. If one adds HWEXEC it will fail, right?
> >
> > Why ? We can just filter out DSISR, we don't really care why it failed
> > as long as we know whether it w
Benjamin Herrenschmidt wrote on 08/10/2009 02:04:56:
>
>
> > Yes it does. If one adds HWEXEC it will fail, right?
>
> Why ? We can just filter out DSISR, we don't really care why it failed
> as long as we know whether it was a store or not.
>
> > Also this count as a read and you could easily end
> Yes it does. If one adds HWEXEC it will fail, right?
Why ? We can just filter out DSISR, we don't really care why it failed
as long as we know whether it was a store or not.
> Also this count as a read and you could easily end up
> in the protection case(in 2.4 you do)
I'm not sure what you m
Joakim Tjernlund/Transmode wrote on 08/10/2009 01:11:23:
>
> Benjamin Herrenschmidt wrote on 08/10/2009
> 00:20:17:
> >
> > On Thu, 2009-10-08 at 00:08 +0200, Joakim Tjernlund wrote:
> > >
> > > Benjamin Herrenschmidt wrote on 07/10/2009
> > > 23:14:52:
> > > >
> > > > On Wed, 2009-10-07 at 22:
Benjamin Herrenschmidt wrote on 08/10/2009 00:20:17:
>
> On Thu, 2009-10-08 at 00:08 +0200, Joakim Tjernlund wrote:
> >
> > Benjamin Herrenschmidt wrote on 07/10/2009
> > 23:14:52:
> > >
> > > On Wed, 2009-10-07 at 22:46 +0200, Joakim Tjernlund wrote:
> > >
> > > > + andi. r11, r10, _PAGE_U
On Thu, 2009-10-08 at 00:08 +0200, Joakim Tjernlund wrote:
>
> Benjamin Herrenschmidt wrote on 07/10/2009
> 23:14:52:
> >
> > On Wed, 2009-10-07 at 22:46 +0200, Joakim Tjernlund wrote:
> >
> > > + andi. r11, r10, _PAGE_USER | _PAGE_ACCESSED
> > > + cmpwi cr0, r11, _PAGE_USER | _PAGE_ACCE
Benjamin Herrenschmidt wrote on 07/10/2009 23:14:52:
>
> On Wed, 2009-10-07 at 22:46 +0200, Joakim Tjernlund wrote:
>
> > + andi. r11, r10, _PAGE_USER | _PAGE_ACCESSED
> > + cmpwi cr0, r11, _PAGE_USER | _PAGE_ACCESSED
> > + bne- cr0, 2f
>
> Did you mean _PAGE_PRESENT | _PAGE_ACCESSED
On Wed, 2009-10-07 at 22:46 +0200, Joakim Tjernlund wrote:
> + andi. r11, r10, _PAGE_USER | _PAGE_ACCESSED
> + cmpwi cr0, r11, _PAGE_USER | _PAGE_ACCESSED
> + bne-cr0, 2f
Did you mean _PAGE_PRESENT | _PAGE_ACCESSED ?
> +2:
> + mfspr r11, SRR1
> + rlwinm r11, r11, 0
Update the TLB asm to make proper use of _PAGE_DIRY and _PAGE_ACCESSED.
Pros:
- I/D TLB Miss never needs to write to the linux pte.
- _PAGE_ACCESSED is only set on TLB Error fixing accounting
- _PAGE_DIRTY is mapped to 0x100, the changed bit, and is set directly
when a page has been made dir
11 matches
Mail list logo