New px-fuse forked from v2.6.0 with limited set of changes from v2.7.0#199
New px-fuse forked from v2.6.0 with limited set of changes from v2.7.0#199prabirpaul wants to merge 32 commits intov2.6.0from
Conversation
…w interface blk_alloc_queue_rh. Add explicit check for this api for now. (#184)
* SLES/Suse 4.12.x compile fixes. * Use a 'defined' entry instead of 'not defined' entry * Consolidate duplicate code to pxd_compat.h and wrap cond to 80 cols * Fix compilation issue. Co-authored-by: latrel.stack@gmail.com <latrel.stack@gmail.com>
Signed-off-by: Lakshmi Narasimhan Sundararajan <lns@portworx.com>
* Use the existing pxd_io_tracker obj. * Change version check to Fix undefined declarations for 5.8 kernels. Fix iot not declared error. * Use the existing pxd_io_tracker obj.
Signed-off-by: Lakshmi Narasimhan Sundararajan <lns@portworx.com>
fdb53d6 to
2d040d0
Compare
Signed-off-by: Lakshmi Narasimhan Sundararajan <lns@portworx.com>
Signed-off-by: Lakshmi Narasimhan Sundararajan <lns@portworx.com>
| @@ -1,11 +1,9 @@ | |||
| /* Enable stub action if fastpath is not enabled */ | |||
| #ifndef __PX_FASTPATH__ | |||
There was a problem hiding this comment.
this line should be included back. makefile is fixed to not defined PX_FASTPATH
Signed-off-by: Lakshmi Narasimhan Sundararajan <lns@portworx.com>
sulakshm
left a comment
There was a problem hiding this comment.
changes look good to me.
| @@ -0,0 +1,160 @@ | |||
| /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |||
There was a problem hiding this comment.
Can we add a note on such header files indicating that they are included for build purpose only?
This reverts commit 2485f5f.
| void pxd_fastpath_adjust_limits(struct pxd_device *pxd_dev, struct request_queue *topque) {} | ||
| int pxd_suspend_state(struct pxd_device *pxd_dev) {return 0;} | ||
|
|
||
| void pxd_suspend_io(struct pxd_device* pxd_dev) { } | ||
| void pxd_resume_io(struct pxd_device* pxd_dev) { } | ||
| int pxd_switch_fastpath(struct pxd_device* pxd_dev) {return -1;} | ||
| int pxd_switch_nativepath(struct pxd_device* pxd_dev) {return -1;} |
There was a problem hiding this comment.
traces for these functions where we dont expect them to be called? I would have said ASSERTs but I am not sure if a kernel panic is what we want. Is there any other way to ensure these functions are not getting called, perhaps a test only module which will have asserts here.
There was a problem hiding this comment.
it's not that they can't be called, we are not going to advertise fastpath.
| #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) | ||
| #define BLK_QC_RETVAL BLK_QC_T_NONE | ||
| blk_qc_t pxd_make_request_fastpath(struct bio *bio) | ||
| { |
There was a problem hiding this comment.
This function should definitely assert hard. When fastpath function is stubbed, IO cannot be received/processed.
|
|
||
| spin_lock(&fc->lock); | ||
| fuse_end_queued_requests(fc); | ||
| spin_unlock(&fc->lock); |
There was a problem hiding this comment.
Sanity and perf regression test done.
Smoke pass: https://jenkins.portworx.dev/job/DEV/job/Porx-03/533
BVT running: https://jenkins.portworx.dev/job/DEV/job/Porx-03/534/
Upgrade test running: 2.6 to 2.7, 2.7 to master
Px-fuse build test done covering the following:
3.10.0-1127.el7.x86_64
3.10.0-1160.11.1.el7.x86_64
3.10.0-327.36.3.el7.x86_64
3.10.0-957.21.3.el7.x86_64
4.12.2-1.el7.elrepo.x86_64
4.16.3-301.fc28.x86_64
4.18.0-1.el7.elrepo.x86_64
4.18.0-193.29.1.el8_2.x86_64
4.18.0-193.el8.x86_64
4.18.0-240.1.1.el8_3.x86_64
4.18.0-257.el8.x86_64
4.18.0-259.el8.x86_64
4.18.0-269.el8.x86_64
4.20.13-1.el7.elrepo.x86_64
5.4.101-1.el7.elrepo.x86_64
5.6.15-1.el7.elrepo.x86_64
5.8.11-1.el8.elrepo.x86_64
5.8.9-1.el7.elrepo.x86_64
5.9.6-1.el7.elrepo.x86_64
3.10.0-1160.15.2.el7.x86_64
4.13.9-300.fc27.x86_64
4.14.186-146.268.amzn2.x86_64
4.14.214-160.339.amzn2.x86_64
4.18.0-147.20.1.el8_1.x86_64
4.18.0-147.el8.x86_64
4.18.0-193.14.2.el8_2.x86_64
4.18.0-193.23.1.el8_2.x86_64
4.18.0-193.24.1.el8_2.dt1.x86_64
4.18.0-240.15.1.el8_3.x86_64
4.18.0-80.1.2.el8_0.x86_64
4.18.0-80.11.1.el8_0.x86_64
5.0.16-100.fc28.x86_64
5.10.0-1.el7.elrepo.x86_64
5.10.0-1.el8.elrepo.x86_64
5.10.15-1.el7.elrepo.x86_64
5.4.12-1.el7.elrepo.x86_64
5.7.0-1.el7.elrepo.x86_64
5.7.0-1.el8.elrepo.x86_64
5.7.12-1.el7.elrepo.x86_64
5.7.7-1.el7.elrepo.x86_64
5.8.0-1.el7.elrepo.x86_64
5.8.0-1.el8.elrepo.x86_64
5.8.15-301.fc33.x86_64
5.9.0-1.el7.elrepo.x86_64
5.9.0-1.el8.elrepo.x86_64
4.9.0-4-amd64
4.9.0-11-amd64
4.9.0-7-amd64
4.9.0-13-amd64
4.9.0-14-amd64
4.19.0-14-cloud-amd64
4.19.0-8-amd64
4.12.14-120-default
4.12.14-122.12-default
4.12.14-122.17-default
4.12.14-122.20-default
4.12.14-122.23-default
4.12.14-122.26-default
4.12.14-122.29-default
4.12.14-122.32-default
4.12.14-122.37-default
4.12.14-122.41-default
4.12.14-122.46-default
4.12.14-122.51-default
4.12.14-122.54-default
4.12.14-122.57-default
4.12.14-122.60-default
4.12.14-122.7-default
4.12.14-95.13-default
4.12.14-95.16-default
4.12.14-95.19-default
4.12.14-95.24-default
4.12.14-95.29-default
4.12.14-95.32-default
4.12.14-95.37-default
4.12.14-95.40-default
4.12.14-95.45-default
4.12.14-95.48-default
4.12.14-95.51-default
4.12.14-95.54-default
4.12.14-95.6-default
4.4.140-94.42-default
4.4.175-94.79-default
4.4.176-94.88-default
4.4.178-94.91-default
4.4.180-94.100-default
4.4.180-94.97-default
4.12.14-150.14-default
4.12.14-150.17-default
4.12.14-150.22-default
4.12.14-150.27-default
4.12.14-150.32-default
4.12.14-150.35-default
4.12.14-150.38-default
4.12.14-150.41-default
4.12.14-150.47-default
4.12.14-195-default
4.12.14-197.10-default
4.12.14-197.15-default
4.12.14-197.18-default
4.12.14-197.21-default
4.12.14-197.26-default
4.12.14-197.29-default
4.12.14-197.34-default
4.12.14-197.37-default
4.12.14-197.4-default
4.12.14-197.40-default
4.12.14-197.45-default
4.12.14-197.48-default
4.12.14-197.51-default
4.12.14-197.56-default
4.12.14-197.61-default
4.12.14-197.64-default
4.12.14-197.67-default
4.12.14-197.7-default
4.12.14-197.72-default
4.12.14-197.75-default
4.12.14-197.78-default
4.12.14-25.28-default
5.3.18-22-default
5.3.18-24.12-default
5.3.18-24.15-default
5.3.18-24.24-default
5.3.18-24.29-default
5.3.18-24.34-default
5.3.18-24.37-default
5.3.18-24.43-default
5.3.18-24.46-default
5.3.18-24.49-default
5.3.18-24.9-default
4.4.0-185-generic
5.4.0-1029-gke
4.4.0-112-generic
5.4.0-1026-azure
5.4.0-1036-gke
4.4.0-170-generic
5.4.0-1028-gcp
4.4.0-116-generic
4.4.0-190-generic
4.4.0-177-generic
4.15.0-1082-azure
4.4.0-178-generic
4.4.0-184-generic
5.4.0-29-generic
5.4.0-1024-gcp
4.4.0-186-generic
4.4.0-31-generic
4.4.0-187-generic
4.4.0-176-generic
4.4.0-174-generic
5.4.0-1036-azure
4.4.0-193-generic
5.4.0-1036-gcp
5.4.0-65-generic