Merge branch 'fix-kstat-xuio' into refs/top-bases/fix-branch
This commit is contained in:
commit
51322821f3
|
@ -765,6 +765,31 @@ dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
|
||||||
*/
|
*/
|
||||||
kstat_t *xuio_ksp = NULL;
|
kstat_t *xuio_ksp = NULL;
|
||||||
|
|
||||||
|
typedef struct xuio_stats {
|
||||||
|
/* loaned yet not returned arc_buf */
|
||||||
|
kstat_named_t xuiostat_onloan_rbuf;
|
||||||
|
kstat_named_t xuiostat_onloan_wbuf;
|
||||||
|
/* whether a copy is made when loaning out a read buffer */
|
||||||
|
kstat_named_t xuiostat_rbuf_copied;
|
||||||
|
kstat_named_t xuiostat_rbuf_nocopy;
|
||||||
|
/* whether a copy is made when assigning a write buffer */
|
||||||
|
kstat_named_t xuiostat_wbuf_copied;
|
||||||
|
kstat_named_t xuiostat_wbuf_nocopy;
|
||||||
|
} xuio_stats_t;
|
||||||
|
|
||||||
|
static xuio_stats_t xuio_stats = {
|
||||||
|
{ "onloan_read_buf", KSTAT_DATA_UINT64 },
|
||||||
|
{ "onloan_write_buf", KSTAT_DATA_UINT64 },
|
||||||
|
{ "read_buf_copied", KSTAT_DATA_UINT64 },
|
||||||
|
{ "read_buf_nocopy", KSTAT_DATA_UINT64 },
|
||||||
|
{ "write_buf_copied", KSTAT_DATA_UINT64 },
|
||||||
|
{ "write_buf_nocopy", KSTAT_DATA_UINT64 }
|
||||||
|
};
|
||||||
|
|
||||||
|
#define XUIOSTAT_INCR(stat, val) \
|
||||||
|
atomic_add_64(&xuio_stats.stat.value.ui64, (val))
|
||||||
|
#define XUIOSTAT_BUMP(stat) XUIOSTAT_INCR(stat, 1)
|
||||||
|
|
||||||
int
|
int
|
||||||
dmu_xuio_init(xuio_t *xuio, int nblk)
|
dmu_xuio_init(xuio_t *xuio, int nblk)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/cred.h>
|
#include <sys/cred.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#include <sys/uio.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
|
@ -239,32 +239,6 @@ typedef struct dmu_xuio {
|
||||||
iovec_t *iovp;
|
iovec_t *iovp;
|
||||||
} dmu_xuio_t;
|
} dmu_xuio_t;
|
||||||
|
|
||||||
typedef struct xuio_stats {
|
|
||||||
/* loaned yet not returned arc_buf */
|
|
||||||
kstat_named_t xuiostat_onloan_rbuf;
|
|
||||||
kstat_named_t xuiostat_onloan_wbuf;
|
|
||||||
/* whether a copy is made when loaning out a read buffer */
|
|
||||||
kstat_named_t xuiostat_rbuf_copied;
|
|
||||||
kstat_named_t xuiostat_rbuf_nocopy;
|
|
||||||
/* whether a copy is made when assigning a write buffer */
|
|
||||||
kstat_named_t xuiostat_wbuf_copied;
|
|
||||||
kstat_named_t xuiostat_wbuf_nocopy;
|
|
||||||
} xuio_stats_t;
|
|
||||||
|
|
||||||
static xuio_stats_t xuio_stats = {
|
|
||||||
{ "onloan_read_buf", KSTAT_DATA_UINT64 },
|
|
||||||
{ "onloan_write_buf", KSTAT_DATA_UINT64 },
|
|
||||||
{ "read_buf_copied", KSTAT_DATA_UINT64 },
|
|
||||||
{ "read_buf_nocopy", KSTAT_DATA_UINT64 },
|
|
||||||
{ "write_buf_copied", KSTAT_DATA_UINT64 },
|
|
||||||
{ "write_buf_nocopy", KSTAT_DATA_UINT64 }
|
|
||||||
};
|
|
||||||
|
|
||||||
#define XUIOSTAT_INCR(stat, val) \
|
|
||||||
atomic_add_64(&xuio_stats.stat.value.ui64, (val))
|
|
||||||
#define XUIOSTAT_BUMP(stat) XUIOSTAT_INCR(stat, 1)
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue