Spdk/lib
Jonathan Richardson e5cfae172d nvme: Remove calls to getpid() when submitting nvme requests
As of glibc version 2.3.4 onwards getpid() is no longer cached. SPDK
makes calls to it in nvme_allocate_request() which is called for each
nvme request received. This results in a system calls up to millions of
times per second which slows down nvme submissions. Since the pid never
changes, it only needs to be called once in initialization per process.
This improves the performance of nvme_allocate_request() signficantly.

Backported from master commit ce70f29662

Change-Id: I81b3d8d7f298db25c3f6c3e237e5f9d290c1f126
Signed-off-by: Jonathan Richardson <jonathan.richardson@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Reviewed-on: https://review.gerrithub.io/407599
Reviewed-by: Scott Branden <sbranden@gmail.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-on: https://review.gerrithub.io/408406
2018-04-20 13:28:47 -04:00
..
bdev lvol: display thin_provision property during get_bdevs 2018-01-31 15:39:25 -05:00
blob blob: print error when dma allocation fails 2018-01-31 15:37:26 -05:00
blobfs blobfs: return the correct file length. 2018-01-11 15:50:01 -05:00
conf conf: Remove use of perror() for strdup() failure 2017-12-15 16:13:27 -05:00
copy build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
cunit include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
env_dpdk util: extend cpumask to hold more than 64 cpus 2018-01-25 18:51:50 -05:00
event util: extend cpumask to hold more than 64 cpus 2018-01-25 18:51:50 -05:00
ioat build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
iscsi util: extend cpumask to hold more than 64 cpus 2018-01-25 18:51:50 -05:00
json utf.h: remove #include "spdk/json.h" 2018-01-31 14:37:16 -05:00
jsonrpc util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
log log: rename SPDK_TRACE_* to SPDK_LOG_* 2017-12-07 12:23:19 -05:00
lvol lvol: display thin_provision property during get_bdevs 2018-01-31 15:39:25 -05:00
nbd nbd: improve nbd to handle overlapped I/O 2018-01-16 09:59:21 -05:00
net iscsi: remove idle connection handling 2018-01-22 23:22:17 -05:00
nvme nvme: Remove calls to getpid() when submitting nvme requests 2018-04-20 13:28:47 -04:00
nvmf nvmf_tgt: add IPv6 listen address support 2018-01-29 12:41:57 -05:00
rocksdb env_spdk: make sure the Randomaccessfile opened as rocksdb posix env. 2018-01-12 12:57:23 -05:00
rpc build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
scsi scsi: ensure bdlen is initialized before use 2018-01-24 16:45:49 -05:00
trace util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
ut_mock test/mock: add pthread_self 2017-09-19 17:15:15 -04:00
util util: extend cpumask to hold more than 64 cpus 2018-01-25 18:51:50 -05:00
vhost vhost: add live migration support 2018-01-30 15:42:40 -05:00
virtio virtio: move vdev->name allocation to generic virtio 2018-01-23 22:49:21 -05:00
Makefile virtio: add new library virtio 2017-12-26 13:03:29 -05:00