env: move VALUE_2MB defines into a new internal header

We use those values in various places in SPDK,
so let's define them in a single place now.

Change-Id: Iad9a5745d69166a6e6032370d4e5a0e604914e45
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/439369
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Darek Stojaczyk 2019-01-07 11:38:39 +01:00 committed by Jim Harris
parent ca3962bf4a
commit 3edc4db7a7
7 changed files with 65 additions and 18 deletions

View File

@ -0,0 +1,58 @@
/*-
* BSD LICENSE
*
* Copyright (c) Intel Corporation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef SPDK_INTERNAL_MEMORY_H
#define SPDK_INTERNAL_MEMORY_H
#include "spdk/stdinc.h"
#ifdef __cplusplus
extern "C" {
#endif
#define SHIFT_2MB 21 /* (1 << 21) == 2MB */
#define MASK_2MB ((1ULL << SHIFT_2MB) - 1)
#define VALUE_2MB (1 << SHIFT_2MB)
#define SHIFT_4KB 12 /* (1 << 12) == 4KB */
#define MASK_4KB ((1ULL << SHIFT_4KB) - 1)
#define VALUE_4KB (1 << SHIFT_4KB)
#define _2MB_OFFSET(ptr) (((uintptr_t)(ptr)) & (VALUE_2MB - 1))
#define _2MB_PAGE(ptr) ((ptr) & ~(0x200000 - 1))
#ifdef __cplusplus
}
#endif
#endif /* SPDK_INTERNAL_MEMORY_H */

View File

@ -64,14 +64,6 @@ extern struct rte_pci_bus rte_pci_bus;
#define SHIFT_1GB 30 /* (1 << 30) == 1 GB */ #define SHIFT_1GB 30 /* (1 << 30) == 1 GB */
#define MASK_1GB ((1ULL << SHIFT_1GB) - 1) #define MASK_1GB ((1ULL << SHIFT_1GB) - 1)
#define SHIFT_2MB 21 /* (1 << 21) == 2MB */
#define MASK_2MB ((1ULL << SHIFT_2MB) - 1)
#define VALUE_2MB (1 << SHIFT_2MB)
#define SHIFT_4KB 12 /* (1 << 12) == 4KB */
#define MASK_4KB ((1ULL << SHIFT_4KB) - 1)
#define VALUE_4KB (1 << SHIFT_4KB)
#define SPDK_PMD_REGISTER_PCI(pci_drv) \ #define SPDK_PMD_REGISTER_PCI(pci_drv) \
__attribute__((constructor)) static void pci_drv ## _register(void) \ __attribute__((constructor)) static void pci_drv ## _register(void) \
{ \ { \

View File

@ -39,6 +39,7 @@
#include <rte_eal_memconfig.h> #include <rte_eal_memconfig.h>
#include "spdk_internal/assert.h" #include "spdk_internal/assert.h"
#include "spdk_internal/memory.h"
#include "spdk/assert.h" #include "spdk/assert.h"
#include "spdk/likely.h" #include "spdk/likely.h"
@ -57,8 +58,6 @@
#define MAP_256TB_IDX(vfn_2mb) ((vfn_2mb) >> (SHIFT_1GB - SHIFT_2MB)) #define MAP_256TB_IDX(vfn_2mb) ((vfn_2mb) >> (SHIFT_1GB - SHIFT_2MB))
#define MAP_1GB_IDX(vfn_2mb) ((vfn_2mb) & ((1ULL << (SHIFT_1GB - SHIFT_2MB)) - 1)) #define MAP_1GB_IDX(vfn_2mb) ((vfn_2mb) & ((1ULL << (SHIFT_1GB - SHIFT_2MB)) - 1))
#define _2MB_OFFSET(ptr) (((uintptr_t)(ptr)) & (VALUE_2MB - 1))
/* Page is registered */ /* Page is registered */
#define REG_MAP_REGISTERED (1ULL << 62) #define REG_MAP_REGISTERED (1ULL << 62)

View File

@ -39,6 +39,7 @@
#include <rte_eal_memconfig.h> #include <rte_eal_memconfig.h>
#include "spdk_internal/assert.h" #include "spdk_internal/assert.h"
#include "spdk_internal/memory.h"
#include "spdk/assert.h" #include "spdk/assert.h"
#include "spdk/likely.h" #include "spdk/likely.h"

View File

@ -39,6 +39,7 @@
#include "spdk/util.h" #include "spdk/util.h"
#include "spdk_internal/log.h" #include "spdk_internal/log.h"
#include "spdk_internal/memory.h"
struct ioat_driver { struct ioat_driver {
pthread_mutex_t lock; pthread_mutex_t lock;
@ -582,9 +583,6 @@ spdk_ioat_detach(struct spdk_ioat_chan *ioat)
free(ioat); free(ioat);
} }
#define _2MB_PAGE(ptr) ((ptr) & ~(0x200000 - 1))
#define _2MB_OFFSET(ptr) ((ptr) & (0x200000 - 1))
int int
spdk_ioat_submit_copy(struct spdk_ioat_chan *ioat, void *cb_arg, spdk_ioat_req_cb cb_fn, spdk_ioat_submit_copy(struct spdk_ioat_chan *ioat, void *cb_arg, spdk_ioat_req_cb cb_fn,
void *dst, const void *src, uint64_t nbytes) void *dst, const void *src, uint64_t nbytes)

View File

@ -42,6 +42,8 @@
#include "nvme_internal.h" #include "nvme_internal.h"
#include "nvme_uevent.h" #include "nvme_uevent.h"
#include "spdk_internal/memory.h"
/* /*
* Number of completion queue entries to process before ringing the * Number of completion queue entries to process before ringing the
* completion queue doorbell. * completion queue doorbell.
@ -1774,8 +1776,6 @@ nvme_pcie_qpair_build_contig_request(struct spdk_nvme_qpair *qpair, struct nvme_
return 0; return 0;
} }
#define _2MB_OFFSET(ptr) (((uintptr_t)(ptr)) & (0x200000 - 1))
/** /**
* Build SGL list describing scattered payload buffer. * Build SGL list describing scattered payload buffer.
*/ */

View File

@ -38,10 +38,11 @@
#include "spdk/string.h" #include "spdk/string.h"
#include "spdk/util.h" #include "spdk/util.h"
#include "spdk/barrier.h" #include "spdk/barrier.h"
#include "spdk/vhost.h" #include "spdk/vhost.h"
#include "vhost_internal.h" #include "vhost_internal.h"
#include "spdk_internal/memory.h"
static uint32_t *g_num_ctrlrs; static uint32_t *g_num_ctrlrs;
/* Path to folder where character device will be created. Can be set by user. */ /* Path to folder where character device will be created. Can be set by user. */
@ -458,8 +459,6 @@ spdk_vhost_vring_desc_is_wr(struct vring_desc *cur_desc)
return !!(cur_desc->flags & VRING_DESC_F_WRITE); return !!(cur_desc->flags & VRING_DESC_F_WRITE);
} }
#define _2MB_OFFSET(ptr) ((ptr) & (0x200000 - 1))
int int
spdk_vhost_vring_desc_to_iov(struct spdk_vhost_session *vsession, struct iovec *iov, spdk_vhost_vring_desc_to_iov(struct spdk_vhost_session *vsession, struct iovec *iov,
uint16_t *iov_index, const struct vring_desc *desc) uint16_t *iov_index, const struct vring_desc *desc)