summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Mosberger <davidm@tiger.hpl.hp.com>2003-07-25 04:44:18 -0700
committerDavid Mosberger <davidm@tiger.hpl.hp.com>2003-07-25 04:44:18 -0700
commitc8daa92df131dcffabcc29cffd1a10fe56e6860b (patch)
tree003887ce3b1642206013096969b93a56a20b0e3e /include
parent3a883dd4a646df9f6b35bd77338d3bb3cce2734d (diff)
ia64: Turn BIO-level virtual merging off again, so we can turn I/O MMU
bypassing on again, which is more beneficial, performance-wise.
Diffstat (limited to 'include')
-rw-r--r--include/asm-ia64/io.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/asm-ia64/io.h b/include/asm-ia64/io.h
index cc2f3d6803c3..2ff2d00ef3ed 100644
--- a/include/asm-ia64/io.h
+++ b/include/asm-ia64/io.h
@@ -414,6 +414,16 @@ extern void __ia64_memset_c_io (unsigned long, unsigned long, long);
# endif /* __KERNEL__ */
/*
+ * Enabling BIO_VMERGE_BOUNDARY forces us to turn off I/O MMU bypassing. It is said that
+ * BIO-level virtual merging can give up to 4% performance boost (not verified for ia64).
+ * On the other hand, we know that I/O MMU bypassing gives ~8% performance improvement on
+ * SPECweb-like workloads on zx1-based machines. Thus, for now we favor I/O MMU bypassing
+ * over BIO-level virtual merging.
+ */
+#if 1
+#define BIO_VMERGE_BOUNDARY 0
+#else
+/*
* It makes no sense at all to have this BIO_VMERGE_BOUNDARY macro here. Should be
* replaced by dma_merge_mask() or something of that sort. Note: the only way
* BIO_VMERGE_BOUNDARY is used is to mask off bits. Effectively, our definition gets
@@ -425,5 +435,6 @@ extern void __ia64_memset_c_io (unsigned long, unsigned long, long);
*/
extern unsigned long ia64_max_iommu_merge_mask;
#define BIO_VMERGE_BOUNDARY (ia64_max_iommu_merge_mask + 1)
+#endif
#endif /* _ASM_IA64_IO_H */