All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.