Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Sep 2002 11:05:18 +0200
From:      Bernd Walter <ticso@cicely9.cicely.de>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        John Baldwin <jhb@FreeBSD.ORG>, Andrew Gallatin <gallatin@cs.duke.edu>, freebsd-alpha@FreeBSD.ORG
Subject:   Re: ithread preemption
Message-ID:  <20020906090517.GI13050@cicely9.cicely.de>
In-Reply-To: <3D78098B.CEBF13EC@mindspring.com>
References:  <XFMail.20020905163105.jhb@FreeBSD.org> <3D78098B.CEBF13EC@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Sep 05, 2002 at 06:48:59PM -0700, Terry Lambert wrote:
> John Baldwin wrote:
> > > Hey ... I think you have it on the nose!   That makes the most sense
> > > I've heard yet.
> > >
> > > Do we have any way to bind a thread to a cpu?
> > 
> > I used to.  Then KSE3 was committed.  I suppose I could rewrite it from
> > scratch again.
> 
> The ithreads are different from threads.  People don't seem to
> get this idea, but it is nevertheless true.
> 
> The x86 SMP doesn't have this problem (yet), in that the IRQ
> is disabled on the I/O APIC, so it doesn't matter what CPU it
> runs on, it's a seperate thing.

Interrupts are disabled globaly on alpha too.
The only platform where we disable on the CPU is the PC164 as
a workaround, but this system is UP.

> If x86 NUMA systems are ever supported, or in some cases the
> AMD Alpha-derived arbitration is used, there could be a problem
> (but not for the same reasons as on the Alpha).

I expect ithreads to be one of the less critical points on NUMA.

> Using all the same primitives for ithreads as for threads will
> lead to things like a shared IRQ which comes true for multiple
> devices will need to count down to enable, if the ithreads for
> servicing are run simultaneously on seperate CPUs.  This also
> implies a global lock on enabling a newly arrived device that's
> sharing an already allocated IRQ, and inter-CPU contnetion on
> any IRQ whose use cont is != 1.

Currently shared interrupts also share an ithread.

> Interrupt threads make some very messy thing elegant, but they
> do so at the cost of moving the mess elsewhere.  If you have to
> characterize it, call it "The law of conservation of inelegance".
> 8-).  The only thing that ever saves you from it is a top-down
> design.

Possible, at least that's our current design.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso@cicely.de         Usergroup           info@cosmo-project.de


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




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