Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Jul 2002 07:20:39 -0700 (PDT)
From:      David Xu <bsddiy@yahoo.com>
To:        John Baldwin <jhb@FreeBSD.ORG>
Cc:        FreeBSD current users <current@FreeBSD.ORG>, Julian Elischer <julian@elischer.org>
Subject:   Re: userret() , ast() and the end of syscalls
Message-ID:  <20020709142039.80050.qmail@web20904.mail.yahoo.com>

next in thread | raw e-mail | index | archive | help

----- Original Message ----- 
From: "John Baldwin" <jhb@FreeBSD.ORG>
To: "John Baldwin" <jhb@FreeBSD.ORG>
Cc: "FreeBSD current users" <current@FreeBSD.ORG>; "FreeBSD current users"
<current@FreeBSD.ORG>; "Julian Elischer" <julian@elischer.org>
Sent: Tuesday, July 09, 2002 8:40 PM
Subject: RE: userret() , ast() and the end of syscalls


> 
> On 09-Jul-2002 John Baldwin wrote:
> > 
> > On 09-Jul-2002 Julian Elischer wrote:
> >> 
> >> A question to those who know..
> >> 
> >> why is userret() called both at the end of trap() or syscall()
> >> and also almost immediatly again (often) at the end of ast().
> > 
> > ast() is really a special form of a trap that is triggered by doing
> > a last-minute type check on return to userland to see if we still
> > have work to do.
> > 
> >> It seems that really there is no one place that one can put code that will
> >> be called ONCE and ONLY ONCE as a thread progresses to userland.
> > 
> > Sure there is.  When you want an action done, set a thread flag marking
> > the request and set TDF_ASTPENDING.  Then handle it in ast() if the flag
> > is set.
> 
> Or, if this needs to happen on every return and not conditionally,
> then do it in userret() and use the state of a variable or some flag
> to note when you've already done it.
> 
> -- 
> 
> John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
> "Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

hope this won't increase per-thread memory requirement, I would like
to create more threads using same memory size. :)

David Xu


__________________________________________________
Do You Yahoo!?
Sign up for SBC Yahoo! Dial - First Month Free
http://sbc.yahoo.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020709142039.80050.qmail>