From: Bryan Henderson <[EMAIL PROTECTED]> Subject: Re: [ANNOUNCE] iSCSI enterprise target software Date: Tue, 1 Mar 2005 13:04:58 -0800
> >it is hard to beat linux kernel [page] cache performance though. > > It's quite easy to beat it for particular applications. You can use > special knowledge about the workload to drop pages that won't be accessed > soon in favor of pages that will, not clean a page that's just going to > get discarded or overwritten soon, allocate less space to less important > data, and on and on. Yes. The page-cache replacement policy has a big impact on the performance. And a smart storage system tries to know how initiators use its disk volume and adjust the replacement policy. For example, if a initiator uses a file system, page cache keeping data used as meta-data blocks can be important than page cache keeping data for file-data blocks. mlock and madvise may helps, however, storage people need more functionality for this issue, I guess. As Arjan said, all page cache are not identical on some architectures. So, target software need to control the way to allocate page cache to get the best performance out of such architectures. Can user-mode target software do it? (sorry, I've not used such architectures.) Another possible reason why kernel-space target software is preferable is handling hardware. For example, NVRAM is very useful and widely used for storage systems. I have no experience with NVRAM cards, however, after a scan of drivers/block/umem.c (Micro Memory's NVRAM card driver), I think that you need to modify the interrupt handler or using bio to get the best performance out of it (although user-mode target software can write, read, and mmap it like normal block devices). And user-mode target software cannot handle this issue well. Note that I'm not trying to push highly-specialized functionality, such as new page-cache replacement policy, for storage systems into the mainline kernel. As I said before, our code doesn't touch other parts of the kernel. I consider our project as a kind of a plat-home for building iSCSI storage systems. I think that basic iSCSI functionality that our code provides satisfies the majority. In addition, industry and academic people can modify our code and the linux kernel to add what they want. They can build remote mirroring systems, failover storage systems, etc possibly by using their own hardware. We may benefit from some of them. Thus, I think that kernel-mode iSCSI target functionality, which can control all the system-resources and provide the maximum flexibility and performance, is a better approach. - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html

