Page MenuHomeFreeBSD

D27288.diff
No OneTemporary

D27288.diff

Index: head/sys/kern/kern_thread.c
===================================================================
--- head/sys/kern/kern_thread.c
+++ head/sys/kern/kern_thread.c
@@ -346,6 +346,7 @@
td = (struct thread *)mem;
td->td_state = TDS_INACTIVE;
td->td_lastcpu = td->td_oncpu = NOCPU;
+ td->td_allocdomain = vm_phys_domain(vtophys(td));
/*
* Note that td_critnest begins life as 1 because the thread is not
@@ -544,7 +545,7 @@
struct thread_domain_data *tdd;
struct thread *ztd;
- tdd = &thread_domain_data[vm_phys_domain(vtophys(td))];
+ tdd = &thread_domain_data[td->td_allocdomain];
ztd = atomic_load_ptr(&tdd->tdd_zombies);
for (;;) {
td->td_zombie = ztd;
Index: head/sys/sys/proc.h
===================================================================
--- head/sys/sys/proc.h
+++ head/sys/sys/proc.h
@@ -246,6 +246,7 @@
sigqueue_t td_sigqueue; /* (c) Sigs arrived, not delivered. */
#define td_siglist td_sigqueue.sq_signals
u_char td_lend_user_pri; /* (t) Lend user pri. */
+ u_char td_allocdomain; /* (b) NUMA domain backing this struct thread. */
/* Cleared during fork1() */
#define td_startzero td_flags

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 23, 9:49 AM (8 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35397889
Default Alt Text
D27288.diff (1 KB)

Event Timeline