748a437c5c
This patch adds virtio-pmem driver for KVM guest. Guest reads the persistent memory range information from Qemu over VIRTIO and registers it on nvdimm_bus. It also creates a nd_region object with the persistent memory range information so that existing 'nvdimm/pmem' driver can reserve this into system memory map. This way 'virtio-pmem' driver uses existing functionality of pmem driver to register persistent memory compatible for DAX capable filesystems. This also provides function to perform guest flush over VIRTIO from 'pmem' driver when userspace performs flush on DAX memory range. Signed-off-by: Pankaj Gupta <pagupta@redhat.com> Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jakub Staron <jstaron@google.com> Tested-by: Jakub Staron <jstaron@google.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> (cherry picked from commit 6e84200c0a2994b991259d19450eee561029bf70) Bug: 146400078 Bug: 148297388 Change-Id: Ie3457fe184f29984d181bc0afa9267e2567a2caf Signed-off-by: Alistair Delva <adelva@google.com>
34 lines
621 B
C
34 lines
621 B
C
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
|
/*
|
|
* Definitions for virtio-pmem devices.
|
|
*
|
|
* Copyright (C) 2019 Red Hat, Inc.
|
|
*
|
|
* Author(s): Pankaj Gupta <pagupta@redhat.com>
|
|
*/
|
|
|
|
#ifndef _UAPI_LINUX_VIRTIO_PMEM_H
|
|
#define _UAPI_LINUX_VIRTIO_PMEM_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/virtio_ids.h>
|
|
#include <linux/virtio_config.h>
|
|
|
|
struct virtio_pmem_config {
|
|
__u64 start;
|
|
__u64 size;
|
|
};
|
|
|
|
#define VIRTIO_PMEM_REQ_TYPE_FLUSH 0
|
|
|
|
struct virtio_pmem_resp {
|
|
/* Host return status corresponding to flush request */
|
|
__u32 ret;
|
|
};
|
|
|
|
struct virtio_pmem_req {
|
|
/* command type */
|
|
__u32 type;
|
|
};
|
|
|
|
#endif
|