On 09/04/13 08:20, Ryan Stone wrote: > On Wed, Sep 4, 2013 at 8:45 AM, Nathan Whitehorn <nwhitehorn_at_freebsd.org> wrote: >> Could you describe what this macro is supposed to do so that we can do the >> porting work? >> -Nathan > #define GET_STACK_USAGE(total, used) > > GET_STACK_USAGE sets the variable passed in total to the total amount > of stack space available to the current thread. used is set to the > amount of stack space currently used (this does not have to have > byte-precision). Netgraph uses this to decide when to stop recursing > and instead defer to a work queue (to prevent stack overflow). I > presume that Alexander is using it in a similar way. It looks like > the amd64 version could be ported to other architectures quite easily > if you were to account for stacks that grow up and stacks that grow > down: > > http://svnweb.freebsd.org/base/head/sys/amd64/include/proc.h?revision=233291&view=markup > > /* Get the current kernel thread stack usage. */ > #define GET_STACK_USAGE(total, used) do { \ > struct thread *td = curthread; \ > (total) = td->td_kstack_pages * PAGE_SIZE; \ > (used) = (char *)td->td_kstack + \ > td->td_kstack_pages * PAGE_SIZE - \ > (char *)&td; \ > } while (0) > _______________________________________________ > freebsd-hackers_at_freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe_at_freebsd.org" I think that should be MI for us anyway. I'm not aware of any architectures FreeBSD supports with stacks that grow up. I'll give it a test on PPC. -NathanReceived on Wed Sep 04 2013 - 12:34:09 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC