* Re: [patch] read[bwl] and ioremap problem [not found] <Pine.LNX.4.10.9912181546480.1964-100000@penguin.transmeta.com> @ 1999-12-21 23:48 ` Theodore Y. Ts'o 1999-12-22 11:57 ` Jes Sorensen 0 siblings, 1 reply; 2+ messages in thread From: Theodore Y. Ts'o @ 1999-12-21 23:48 UTC (permalink / raw) To: Linus Torvalds; +Cc: Alan Cox, Jes Sorensen, wendling, linux-kernel Date: Sat, 18 Dec 1999 15:50:19 -0800 (PST) From: Linus Torvalds <torvalds@transmeta.com> THAT case is certainly a rather strong argument for using something like "gsc_read[bwl]()" on HP-PA. The other strong reason for doing gsc_read[bwl] on HP-PA is that some PA-RISC boxes have both a GSC bus *and* a PCI bus, and you need to access devices on both buses.... Something to consider is that for certain drivers, such as the serial driver, I'm already having to do a serial_inp() which dispatches to the proper {inb,readb,gsc_readb} already. Yes I take a overhead/performance hit for doing this, but it's the only clean way to support both ISA and PCI serial boards in a single i386 box, or to support multiple buses in the HP-PA scenario. We've historically said that this kind of thing is horrible for performance reasons, and the SCO and NetBSD approaches of doing parameterized I/O has been derided for that reason. However, it's something that perhaps we should rethink; on modern CPU's, the extra procedure activation/deactivation isn't *that* expensive, and it ends up making the drivers much more portable and easier to support multiple architectures. The alternative is that each driver author ends up writing their own I/O dispatch routines, such as what's currently in the serial driver. While this approach does have some advantages, in that each driver author can decide whether or not he/she wishes to pay the indirection overhead, it can mean code duplication and a delay before certain devices get supported on non-mainline architectures. Something to think about. - Ted - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [patch] read[bwl] and ioremap problem 1999-12-21 23:48 ` [patch] read[bwl] and ioremap problem Theodore Y. Ts'o @ 1999-12-22 11:57 ` Jes Sorensen 0 siblings, 0 replies; 2+ messages in thread From: Jes Sorensen @ 1999-12-22 11:57 UTC (permalink / raw) To: Theodore Y. Ts'o; +Cc: Linus Torvalds, Alan Cox, wendling, linux-kernel >>>>> "Ted" == Theodore Y Ts'o <tytso@mit.edu> writes: Ted> We've historically said that this kind of thing is horrible for Ted> performance reasons, and the SCO and NetBSD approaches of doing Ted> parameterized I/O has been derided for that reason. However, Ted> it's something that perhaps we should rethink; on modern CPU's, Ted> the extra procedure activation/deactivation isn't *that* Ted> expensive, and it ends up making the drivers much more portable Ted> and easier to support multiple architectures. The alternative is Ted> that each driver author ends up writing their own I/O dispatch Ted> routines, such as what's currently in the serial driver. While Ted> this approach does have some advantages, in that each driver Ted> author can decide whether or not he/she wishes to pay the Ted> indirection overhead, it can mean code duplication and a delay Ted> before certain devices get supported on non-mainline Ted> architectures. Oh it still is horrible ;-), and therefore it is something you don't just want to implement in one big generic solution. You may want to implement a generic interface that slow devices can use, but for some high performance devices you really want the bigger freedom and the option to control which parts are inlined and which are not. Ie. for a Gigabit Ethernet or a high speed serial driver you may want to inline parts of this in the fast path while using non-inlined versions for the slow path bits of it (device initialization etc) to save space. As a device driver author you may also want to use function pointers rather than a list of if's for the non inlined case. Jes - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~1999-12-22 11:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <Pine.LNX.4.10.9912181546480.1964-100000@penguin.transmeta.com>
1999-12-21 23:48 ` [patch] read[bwl] and ioremap problem Theodore Y. Ts'o
1999-12-22 11:57 ` Jes Sorensen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox