From owner-p4-projects@FreeBSD.ORG Wed Nov 1 18:43:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 591F216A412; Wed, 1 Nov 2006 18:43:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1C62216A415 for ; Wed, 1 Nov 2006 18:43:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DDE7143D55 for ; Wed, 1 Nov 2006 18:43:45 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kA1IhjE1008150 for ; Wed, 1 Nov 2006 18:43:45 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kA1IhjQJ008145 for perforce@freebsd.org; Wed, 1 Nov 2006 18:43:45 GMT (envelope-from jhb@freebsd.org) Date: Wed, 1 Nov 2006 18:43:45 GMT Message-Id: <200611011843.kA1IhjQJ008145@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 108932 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Nov 2006 18:43:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=108932 Change 108932 by jhb@jhb_mutex on 2006/11/01 18:43:12 Update. Affected files ... .. //depot/projects/smpng/sys/notes#94 edit .. //depot/user/jhb/intr/notes#44 edit .. //depot/user/jhb/msi/notes#2 edit Differences ... ==== //depot/projects/smpng/sys/notes#94 (text+ko) ==== @@ -80,10 +80,11 @@ - untested Active child branches: -- jhb_intr - MSI? +- jhb_intr - misc interrupt stuff - jhb_intr_fast - jeff's fast ithread patches - jhb_ktrace - kernel debugging stuff, asm constraints - jhb_lock - synchronization primitives +- jhb_msi - PCI MSI/MSI-X interrupts - jhb_needresched - scheduler fun - jhb_preemption - preemption - jhb_proc - proc locking ==== //depot/user/jhb/intr/notes#44 (text+ko) ==== @@ -107,32 +107,6 @@ - atpic code is now only used for UP, so it can use spinlock sections explicitly rather than icu lock -MSI Support: -- i386 - - MSI interrupt source class - - eoi just does lapic_eoi() - - enable/disable source do little - - need a function for allocating N vectors which creates the interrupt - sources, allocs apic vectors for them, and then adds them - - need a way to teardown as well, maybe nexus' bus_release_resource() - would do that via a new release_resource intsrc method? - - determine new-bus interface for MSI IRQs - - need a way to request MSIs - - pci bridge drivers (or bus) should have opportunity to blacklist - known-bad bridges - - need to support alloc'ing certain amounts (1, 4, 8, etc.) from the - driver - - i386 MSI class will add new interrupt sources after the I/O APIC IRQs - - nexus (or somebody) will then create IRQ resources at rid 1 .. N and - set them up for the child device - - alternative is to fix MSI at rid 1 and let that resource have multiple - IRQs. driver has to call bus_alloc_resourc() for each supported - count, and bus_setup_intr() will have to grow an index. this - interface requires the IRQs to be contiguously numbered though, and - I think that is a bad assumption to enforce - - child device can then do bus_alloc_resource() / bus_setup_intr() -- amd64, just copy over from i386 for now - Remaining Interrupt Event issues: + Port to powerpc - has a few XXX, doesn't handle multiple fast ==== //depot/user/jhb/msi/notes#2 (text+ko) ==== @@ -90,3 +90,27 @@ - jhb_proc_slock - per-process spin lock Space reserved for child branches: +- i386 + - MSI interrupt source class + - eoi just does lapic_eoi() + - enable/disable source do little + - need a function for allocating N vectors which creates the interrupt + sources, allocs apic vectors for them, and then adds them + - need a way to teardown as well, maybe nexus' bus_release_resource() + would do that via a new release_resource intsrc method? + - determine new-bus interface for MSI IRQs + - need a way to request MSIs + - pci bridge drivers (or bus) should have opportunity to blacklist + known-bad bridges + - need to support alloc'ing certain amounts (1, 4, 8, etc.) from the + driver + - i386 MSI class will add new interrupt sources after the I/O APIC IRQs + - nexus (or somebody) will then create IRQ resources at rid 1 .. N and + set them up for the child device + - alternative is to fix MSI at rid 1 and let that resource have multiple + IRQs. driver has to call bus_alloc_resourc() for each supported + count, and bus_setup_intr() will have to grow an index. this + interface requires the IRQs to be contiguously numbered though, and + I think that is a bad assumption to enforce + - child device can then do bus_alloc_resource() / bus_setup_intr() +- amd64, just copy over from i386 for now