Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Feb 2002 18:18:41 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        Terry Lambert <tlambert2@mindspring.com>, Alfred Perlstein <alfred@FreeBSD.ORG>, Bosko Milekic <bmilekic@unixdaemons.com>, Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>, <current@FreeBSD.ORG>, John Baldwin <jhb@FreeBSD.ORG>
Subject:   Re: malloc_bucket() idea (was Re: How to fix malloc.)
Message-ID:  <200202240218.g1O2IfL40500@apollo.backplane.com>
References:   <20020224130010.W31250-100000@gamplex.bde.org>

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

:
:On Sat, 23 Feb 2002, Matthew Dillon wrote:
:
:> :It's too messy and unfinished (doesn't work right for SMP or irqs >= 16),
:> :and dificult to untangle from my other patches.  I posted these partial
:> :ones to attempt to inhibit() recomplication of the current critical*
:> :functions in directions that I don't want to go :-).
:>
:>     Oh, ok.  Hmm.  Well, do you mind if I throw together an interrupt-set-cli-
:>     in-return-frame patch set?  I think it would wind up being just as fast.
:
:I don't see how that would work.  We need to call critical_enter() from
:ordinary code, so there is no free frame pop.
:
:Bruce

    I'm trying it your way, with an ipending variable.

    The set-cli-in-return-frame mechanism would only work well for level
    interrupts.  Basically the interrupt occurs and you set PS_I in the
    return frame (that was pushed on entry to the interrupt).  
    critical_exit() would then detect the 1->0 transition and simply STI.

    But since we have a combination of level and edge it gets too messy for
    my tastes, so I'm trying it with an ipending variable.

					-Matt
					Matthew Dillon 
					<dillon@backplane.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?200202240218.g1O2IfL40500>