Spdk/lib
Jonathan Richardson ce70f29662 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.

Change-Id: Idee0f06484d459906b9ce1d9b7360a33119c7e56
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>
2018-04-16 16:19:44 -04:00
..
bdev bdev: add new optional bdev i/f entry point 2018-04-13 17:46:33 -04:00
blob blob: copy xattr name with memcpy() 2018-04-09 15:35:36 -04:00
blobfs blobfs: sync length if append occurs after cache eviction 2018-04-11 16:03:14 -04:00
conf conf: Remove use of perror() for strdup() failure 2017-12-15 16:13:27 -05:00
copy copy/ioat: reduce log level of informational messages 2018-04-06 18:31:54 -04:00
cunit include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
env_dpdk env_dpdk: track PCI devices internally for vtophys 2018-04-02 14:03:05 -04:00
event app: Add "NoPci" to command line options 2018-04-16 12:42:15 -04:00
ioat scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
iscsi iscsi: do static initialization of globals that allow it 2018-04-12 11:26:44 -04:00
json json: add va_arg versions for write_string and write_named_string 2018-02-23 15:27:16 -05:00
jsonrpc jsonrpc: convert send queue to singly linked tail queue 2018-04-12 00:11:35 -04:00
log log: rename SPDK_TRACE_* to SPDK_LOG_* 2017-12-07 12:23:19 -05:00
lvol lvol: add UUID to lvols snapshots and clones 2018-04-12 19:29:00 -04:00
nbd lib: Return instead of abort() in nbd 2018-03-13 13:41:50 -04:00
net include/net.h: remove non public functions to private header file 2018-04-11 12:10:14 -04:00
nvme nvme: Remove calls to getpid() when submitting nvme requests 2018-04-16 16:19:44 -04:00
nvmf nvmf: fix non-deallocate Dataset Management status 2018-04-10 15:44:38 -04:00
rocksdb rocksdb: remove nonsensical fallocate #ifdef 2018-03-27 12:41:12 -04:00
rpc rpc: remove the existing socket file when application starts 2018-03-02 16:48:53 -05:00
scsi scsi: validate dev name length 2018-04-10 15:43:03 -04:00
trace app,lib: fix checking mmap return value 2018-03-30 16:18:34 -04:00
ut_mock test/mock: add pthread_self 2017-09-19 17:15:15 -04:00
util io_channel: invoke unregister_cb on same thread unregister was called 2018-03-19 21:50:19 -04:00
vhost vhost: move memory registration to DPDK thread 2018-04-12 16:06:31 -04:00
virtio virtio: don't silence vhost-user errors 2018-04-03 15:22:49 -04:00
Makefile virtio: add new library virtio 2017-12-26 13:03:29 -05:00