linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Cc: Scott Wood <scottwood@freescale.com>,
	"linuxppc-dev@ozlabs.org" <linuxppc-dev@ozlabs.org>,
	Rex Feany <RFeany@mrv.com>
Subject: Re: [PATCH 3/6] 8xx: get rid of _PAGE_HWWRITE dependency in MMU.
Date: Wed, 07 Oct 2009 10:25:48 +1100	[thread overview]
Message-ID: <1254871548.6035.28.camel@pasglop> (raw)
In-Reply-To: <OFC64CFB37.E5E17F42-ONC1257647.0068299A-C1257647.00795ECE@transmode.se>


> After some more thinking I don't think I do TLB Miss/Error correctly yet.
> The problem is ACCESSED. Since I don't know if load or store in TLB Miss
> I must choose:
>  - Assume load and do what you do above. That will incorrectly
>    set ACCESSED on store ops when mapped as RO(plus whatever more I haven't thought about yet)
> 
>  - Trap to TLB Error and do the above. That will set ACCESSED correctly
>    but won't trap kernel space so these remain what they are.
>    Is anything depending on ACCESSED for kernel pages?
>    if so, what if we set ACCESSED on all kernel pages when mapping them at boot?
>    Will SWAP or some other service(accounting?) not like that?

Kernel pages always have ACCESSED set and never clear it.

I think the only solution here is that if -anything- doesn't look right,
the TLB miss should create one of those "unpopulated" entries and we
need to make sure they are properly invalidated in the subsequent fault
path. I'll read the 8xx doco asap to make sure I get it right.

> Finally, why do you need to include DIRTY when a store OP?
> Do you need to do COW before dirtying the page?
> Seems to work for me to just set DIRTY in TLB Error if RW is set too
> and not trap to C.

You can, but what about a load ? That shouldn't set dirty. So if you set
dirty only on stores, then a load will bring in a page without dirty,
you need to make sure you get another TLB error when writing to it so
you get a chance to set dirty.

Ben.

  reply	other threads:[~2009-10-06 23:26 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-05 12:16 [PATCH 0/6] PowerPc 8xx TLB/MMU fixes Joakim Tjernlund
2009-10-05 12:16 ` [PATCH 1/6] 8xx: DTLB Error must check for more errors Joakim Tjernlund
2009-10-05 12:16   ` [PATCH 2/6] 8xx, fault: Add some debug code to do_page_fault() Joakim Tjernlund
2009-10-05 12:16     ` [PATCH 3/6] 8xx: get rid of _PAGE_HWWRITE dependency in MMU Joakim Tjernlund
2009-10-05 12:16       ` [PATCH 4/6] 8xx: Tag DAR with 0x00f0 to catch buggy instructions Joakim Tjernlund
2009-10-05 12:16         ` [PATCH 5/6] 8xx: Fixup DAR from buggy dcbX instructions Joakim Tjernlund
2009-10-05 12:16           ` [PATCH 6/6] 8xx: start using dcbX instructions in various copy routines Joakim Tjernlund
2009-10-05 20:17       ` [PATCH 3/6] 8xx: get rid of _PAGE_HWWRITE dependency in MMU Benjamin Herrenschmidt
2009-10-05 21:25         ` Joakim Tjernlund
2009-10-05 21:37           ` Benjamin Herrenschmidt
2009-10-05 22:00             ` Joakim Tjernlund
2009-10-05 22:09               ` Benjamin Herrenschmidt
2009-10-05 22:55                 ` Joakim Tjernlund
2009-10-05 23:15                   ` Benjamin Herrenschmidt
2009-10-05 23:35                     ` Joakim Tjernlund
2009-10-06  0:34                       ` Benjamin Herrenschmidt
2009-10-06  6:15                         ` Joakim Tjernlund
2009-10-06  6:45                           ` Benjamin Herrenschmidt
2009-10-06  7:54                             ` Joakim Tjernlund
2009-10-06 15:40                             ` Joakim Tjernlund
2009-10-06 17:28                               ` Joakim Tjernlund
2009-10-06 22:05                         ` Joakim Tjernlund
2009-10-06 23:25                           ` Benjamin Herrenschmidt [this message]
2009-10-07  1:07                           ` Benjamin Herrenschmidt
2009-10-07  7:47                             ` Joakim Tjernlund
2009-10-05 18:12 ` [PATCH 0/6] PowerPc 8xx TLB/MMU fixes Scott Wood
2009-10-05 18:27   ` Joakim Tjernlund
2009-10-05 20:09     ` Scott Wood
2009-10-05 21:04       ` Joakim Tjernlund
2009-10-05 21:31         ` Benjamin Herrenschmidt
2009-10-05 21:41           ` Joakim Tjernlund
2009-10-05 21:46             ` Scott Wood
2009-10-05 21:31         ` Scott Wood
2009-10-05 22:04 ` Rex Feany
2009-10-05 22:31   ` Joakim Tjernlund
2009-10-05 22:37     ` Benjamin Herrenschmidt
2009-10-05 22:58       ` Joakim Tjernlund
2009-10-05 23:49       ` Joakim Tjernlund
2009-10-06  1:52         ` Benjamin Herrenschmidt
2009-10-06  8:06           ` Joakim Tjernlund
2009-10-06  8:32             ` Benjamin Herrenschmidt
2009-10-06 10:58               ` Joakim Tjernlund
2009-10-06 11:06                 ` Benjamin Herrenschmidt
2009-10-06 11:39                   ` Joakim Tjernlund
2009-10-06 13:18                   ` Joakim Tjernlund
2009-10-05 22:42     ` Rex Feany
2009-10-05 23:00       ` Joakim Tjernlund
2009-10-06  6:25       ` Joakim Tjernlund
2009-10-06  6:44         ` Benjamin Herrenschmidt

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=1254871548.6035.28.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=RFeany@mrv.com \
    --cc=joakim.tjernlund@transmode.se \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=scottwood@freescale.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).