+++ This bug was initially created as a clone of Bug #1343838 +++ Description of problem: One of the consumers of a page aligned buffer would be posix's readv fop on O_DIRECT fds. Today the way it works is by getting a page-aligned buffer through calloc, pread()ing into this buffer and then copying its contents into a newly created iobuf's ptr. This results in an extra memcpy() which can be avoided if we could implement an api that would return an iobuf whose ptr is mem-aligned. That way the iobuf->ptr can be directly passed to sys_preadv() as a parameter by posix translator. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: --- Additional comment from Vijay Bellur on 2016-06-08 07:16:33 EDT --- REVIEW: http://review.gluster.org/14672 (libglusterfs: Implement API that provides page-aligned iobufs) posted (#1) for review on master by Krutika Dhananjay (kdhananj) --- Additional comment from Vijay Bellur on 2016-06-08 22:33:49 EDT --- REVIEW: http://review.gluster.org/14672 (libglusterfs: Implement API that provides page-aligned iobufs) posted (#2) for review on master by Krutika Dhananjay (kdhananj) --- Additional comment from Vijay Bellur on 2016-06-09 05:34:35 EDT --- REVIEW: http://review.gluster.org/14672 (libglusterfs: Implement API that provides page-aligned iobufs) posted (#3) for review on master by Krutika Dhananjay (kdhananj) --- Additional comment from Vijay Bellur on 2016-06-28 17:52:46 EDT --- COMMIT: http://review.gluster.org/14672 committed in master by Jeff Darcy (jdarcy) ------ commit 1e60f9746cf7cb8ce34e2b1572410c39b11d7664 Author: Krutika Dhananjay <kdhananj> Date: Tue Jun 7 16:27:34 2016 +0530 libglusterfs: Implement API that provides page-aligned iobufs One of the consumers of a page aligned buffer would be posix's readv fop on O_DIRECT fds. Today the way it works is by getting a page-aligned buffer through calloc, pread()ing into this buffer and then copying its contents into a newly created iobuf's ptr. This results in an extra memcpy() which can be avoided if we could implement an api that would return an iobuf whose ptr is page-aligned. That way the iobuf->ptr can be directly passed to sys_pread() as a parameter by posix translator. Change-Id: I385139bc6ee309fc501034b3af8f7814fab8cd65 BUG: 1343838 Signed-off-by: Krutika Dhananjay <kdhananj> Reviewed-on: http://review.gluster.org/14672 CentOS-regression: Gluster Build System <jenkins.org> Smoke: Gluster Build System <jenkins.org> NetBSD-regression: NetBSD Build System <jenkins.org> Reviewed-by: Zhou Zhengping <johnzzpcrystal> Reviewed-by: Jeff Darcy <jdarcy>
REVIEW: http://review.gluster.org/14825 (libglusterfs: Implement API that provides page-aligned iobufs) posted (#1) for review on release-3.8 by Krutika Dhananjay (kdhananj)
COMMIT: http://review.gluster.org/14825 committed in release-3.8 by Pranith Kumar Karampuri (pkarampu) ------ commit 82f77991679c05d93c01888bb79c571c7fa9142f Author: Krutika Dhananjay <kdhananj> Date: Tue Jun 7 16:27:34 2016 +0530 libglusterfs: Implement API that provides page-aligned iobufs Backport of: http://review.gluster.org/14672 One of the consumers of a page aligned buffer would be posix's readv fop on O_DIRECT fds. Today the way it works is by getting a page-aligned buffer through calloc, pread()ing into this buffer and then copying its contents into a newly created iobuf's ptr. This results in an extra memcpy() which can be avoided if we could implement an api that would return an iobuf whose ptr is page-aligned. That way the iobuf->ptr can be directly passed to sys_pread() as a parameter by posix translator. Change-Id: I7f64419461db387e4ab6b0e03c90471744aa56e1 BUG: 1351025 Signed-off-by: Krutika Dhananjay <kdhananj> Reviewed-on: http://review.gluster.org/14825 Smoke: Gluster Build System <jenkins.org> NetBSD-regression: NetBSD Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Reviewed-by: Pranith Kumar Karampuri <pkarampu>
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.8.1, please open a new bug report. glusterfs-3.8.1 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] http://thread.gmane.org/gmane.comp.file-systems.gluster.packaging/156 [2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user