public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Jack Steiner <steiner@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: [Linux-ia64] Re: [Discontig-devel] Re: [RFC] NUMA functions for accessing replicated areas
Date: Sun, 20 Jan 2002 00:02:20 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590698805890@msgid-missing> (raw)

> 
> On Sat, 19 Jan 2002 18:27:48 +0100, 
> Andrea Arcangeli <andrea@suse.de> wrote:
> >On Sat, Jan 19, 2002 at 11:25:17AM +1100, Keith Owens wrote:
> >The opaque void * spread across all the API looks rather scary.
> >Furthmore I'm not convinced we need to pass any cookie to the api, all
> >the calls knows the numadata info by the static status after boot.
> >
> >So I think something like this should be enough:
> >
> >	int numa_replicated(unsigned long address, int size);
> >	int numa_getarea(void *to, unsigned long from, int size);
> >	int numa_putarea(unsigned long to, void *from, int size);
> 
> That assumes that all replicated data is identical.  It starts off that
> way but what prevents one set of replicated data being changed and not
> the others?  I don't mind that assumption, it makes life easier for kdb,
> but I did not want to constrain NUMA implementations.  However if
> everyone agrees that each instance of replcated data should always be
> identical then numa_getarea() can read from any instance and
> numa_putarea() writes to all instances, no need for numa_replicate_loop.

Currently, all replicated data is identical. I can imagine a few cases where
we might consider having different data, but nothing like that is currently 
planned. I doubt that any performance advantage of non-identical replicated
data is worth the extra complexity.


There is one thing that occurred to me. Currently, on IA64, the replicated
data is read-execute. The NUMA code known how to write it but I dont
know if you want to teach kdb how to do it. It is easy to do on IA64. I
dont know about other platforms (or even if it would apply).

TR0 is used to access the node local copy of kernel text

	INSTRUCTION TRANSLATION REGISTERS
	NODE 0, CPU 0
	|             VPN              PPN        PS  MA  ED AR PL D A P  KEY    RID   |
	|  0 | e002000000000000 0000000000000000  64M WB  1  1  0  0 1 1 000000 000007 |	

	NODE 1, CPU 0
	|             VPN              PPN        PS  MA  ED AR PL D A P  KEY    RID   |
	|  0 | e002000000000000 0000000204000000  64M WB  1  1  0  0 1 1 000000 000007 |





> 
> >Futhmore it may be even better to drop numa_replicated completly and to
> >default using numa_getarea/numa_putarea always, this should make kdb
> >even cleaner. Implementation of getarea/putarea for non numa case will
> >be a simple memcpy.
> 
> If numa_replicated() returns true then it is safe to use memcpy, if
> numa_replicated() is omitted then the get/put functions must validate
> the from address on get and the to address on put.  kdb v2.1 relies on
> the MMU via __copy_to_user() to detect invalid user supplied addresses.
> 
> 
> _______________________________________________
> Discontig-devel mailing list
> Discontig-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/discontig-devel
> 


-- 
Thanks

Jack Steiner    (651-683-5302)   (vnet 233-5302)      steiner@sgi.com



                 reply	other threads:[~2002-01-20  0:02 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=marc-linux-ia64-105590698805890@msgid-missing \
    --to=steiner@sgi.com \
    --cc=linux-ia64@vger.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