From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH RFC 00/18] Introducing Xen PV block driver to OVMF Date: Wed, 16 Jul 2014 16:10:49 -0400 Message-ID: <20140716201049.GA13085@laptop.dumpdata.com> References: <1405523747-5024-1-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1405523747-5024-1-git-send-email-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Anthony PERARD Cc: EDK2 devel , Xen Devel List-Id: xen-devel@lists.xenproject.org On Wed, Jul 16, 2014 at 04:15:29PM +0100, Anthony PERARD wrote: > Hi all, > > This patch series is implementing the necessary in order to access a PV block > device. For that, one need a XenStore client, a XenBus client, and the PV block > driver. > > There are two new drivers, XenbusDxe and XenPvBlkDxe. The first one implement a > bus drivers, and the second is a block drivers. > > There are still a bit of work to be done on this series, especially the comment > in the code, but I'd like your comment on this patch series. Went through it - I had some questions and spotted some issues that are pretty easy to fix. Otherwise I think you just need to flesh it out with more comments, links to the specs or just copy the relevant parts. And little puzzled by the usage of 8 pages instead of doing it via 11. But that is probably not a big deal since you are doing each I/O request synchronously anyhow. Thank you for posting this and developing it! > > Anthony PERARD (18): > OvmfPkg: Add public headers from Xen Project. > OvmfPkg: Add basic skeleton for the Xenbus driver. > OvmfPkg/XenbusDxe: Add device state struct and create an ExitBoot > services event. > OvmfPkg/XenbusDxe: Add support to make Xen Hypercalls. > OvmfPkg/XenbusDxe: Open PciIo protocol. > OvmfPkg: Introduce Xenbus Protocol. > OvmfPkg/XenbusDxe: Add InterlockedCompareExchange16. > OvmfPkg/XenbusDxe: Add Grant Table functions. > OvmfPkg/XenbusDxe: Add Event Channel Notify. > OvmfPkg/XenbusDxe: Add TestAndClearBit. > OvmfPkg/XenbusDxe: Add XenStore client implementation > OvmfPkg/XenbusDxe: Add an helper AsciiStrDup. > OvmfPkg/XenbusDxe: Add Xenstore function into the Xenbus protocol > OvmfPkg/XenbusDxe: Indroduce XenBus support itself. > OvmfPkg/XenbusDxe: Add Event Channel into XenBus protocol. > OvmfPkg/XenPvBlkDxe: Xen PV Block device, initial skeleton > OvmfPkg/XenPvBlkDxe: Add BlockFront client. > OvmfPkg/XenPvBlkDxe: Add BlockIo. > > .../IndustryStandard/Xen/arch-x86/xen-x86_32.h | 171 +++ > .../IndustryStandard/Xen/arch-x86/xen-x86_64.h | 202 +++ > .../Include/IndustryStandard/Xen/arch-x86/xen.h | 273 ++++ > .../Include/IndustryStandard/Xen/event_channel.h | 381 +++++ > OvmfPkg/Include/IndustryStandard/Xen/grant_table.h | 662 +++++++++ > OvmfPkg/Include/IndustryStandard/Xen/hvm/hvm_op.h | 275 ++++ > OvmfPkg/Include/IndustryStandard/Xen/hvm/params.h | 150 ++ > OvmfPkg/Include/IndustryStandard/Xen/io/blkif.h | 608 ++++++++ > .../Include/IndustryStandard/Xen/io/protocols.h | 40 + > OvmfPkg/Include/IndustryStandard/Xen/io/ring.h | 312 +++++ > OvmfPkg/Include/IndustryStandard/Xen/io/xenbus.h | 80 ++ > OvmfPkg/Include/IndustryStandard/Xen/io/xs_wire.h | 138 ++ > OvmfPkg/Include/IndustryStandard/Xen/memory.h | 480 +++++++ > OvmfPkg/Include/IndustryStandard/Xen/sched.h | 174 +++ > OvmfPkg/Include/IndustryStandard/Xen/trace.h | 310 +++++ > OvmfPkg/Include/IndustryStandard/Xen/xen-compat.h | 44 + > OvmfPkg/Include/IndustryStandard/Xen/xen.h | 897 ++++++++++++ > OvmfPkg/Include/Protocol/Xenbus.h | 231 +++ > OvmfPkg/OvmfPkg.dec | 2 + > OvmfPkg/OvmfPkgX64.dsc | 2 + > OvmfPkg/OvmfPkgX64.fdf | 2 + > OvmfPkg/XenPvBlkDxe/BlockFront.c | 583 ++++++++ > OvmfPkg/XenPvBlkDxe/BlockFront.h | 88 ++ > OvmfPkg/XenPvBlkDxe/BlockIo.c | 256 ++++ > OvmfPkg/XenPvBlkDxe/BlockIo.h | 109 ++ > OvmfPkg/XenPvBlkDxe/ComponentName.c | 160 +++ > OvmfPkg/XenPvBlkDxe/ComponentName.h | 91 ++ > OvmfPkg/XenPvBlkDxe/DriverBinding.h | 139 ++ > OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c | 388 ++++++ > OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h | 83 ++ > OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf | 61 + > OvmfPkg/XenbusDxe/ComponentName.c | 160 +++ > OvmfPkg/XenbusDxe/ComponentName.h | 91 ++ > OvmfPkg/XenbusDxe/DriverBinding.h | 139 ++ > OvmfPkg/XenbusDxe/EventChannel.c | 71 + > OvmfPkg/XenbusDxe/EventChannel.h | 40 + > OvmfPkg/XenbusDxe/GrantTable.c | 204 +++ > OvmfPkg/XenbusDxe/GrantTable.h | 34 + > OvmfPkg/XenbusDxe/Helpers.c | 9 + > OvmfPkg/XenbusDxe/InterlockedCompareExchange16.h | 7 + > .../XenbusDxe/X64/InterlockedCompareExchange16.c | 41 + > OvmfPkg/XenbusDxe/X64/TestAndClearBit.S | 10 + > OvmfPkg/XenbusDxe/X64/hypercall.S | 16 + > OvmfPkg/XenbusDxe/X64/hypercall.asm | 19 + > OvmfPkg/XenbusDxe/XenBus.c | 363 +++++ > OvmfPkg/XenbusDxe/XenBus.h | 76 + > OvmfPkg/XenbusDxe/XenHypercall.c | 101 ++ > OvmfPkg/XenbusDxe/XenHypercall.h | 44 + > OvmfPkg/XenbusDxe/XenbusDxe.c | 452 ++++++ > OvmfPkg/XenbusDxe/XenbusDxe.h | 131 ++ > OvmfPkg/XenbusDxe/XenbusDxe.inf | 75 + > OvmfPkg/XenbusDxe/Xenstore.c | 1472 ++++++++++++++++++++ > OvmfPkg/XenbusDxe/Xenstore.h | 367 +++++ > 53 files changed, 11314 insertions(+) > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen-x86_32.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen-x86_64.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/event_channel.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/grant_table.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/hvm/hvm_op.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/hvm/params.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/blkif.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/protocols.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/ring.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/xenbus.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/xs_wire.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/memory.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/sched.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/trace.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/xen-compat.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/xen.h > create mode 100644 OvmfPkg/Include/Protocol/Xenbus.h > create mode 100644 OvmfPkg/XenPvBlkDxe/BlockFront.c > create mode 100644 OvmfPkg/XenPvBlkDxe/BlockFront.h > create mode 100644 OvmfPkg/XenPvBlkDxe/BlockIo.c > create mode 100644 OvmfPkg/XenPvBlkDxe/BlockIo.h > create mode 100644 OvmfPkg/XenPvBlkDxe/ComponentName.c > create mode 100644 OvmfPkg/XenPvBlkDxe/ComponentName.h > create mode 100644 OvmfPkg/XenPvBlkDxe/DriverBinding.h > create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c > create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h > create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf > create mode 100644 OvmfPkg/XenbusDxe/ComponentName.c > create mode 100644 OvmfPkg/XenbusDxe/ComponentName.h > create mode 100644 OvmfPkg/XenbusDxe/DriverBinding.h > create mode 100644 OvmfPkg/XenbusDxe/EventChannel.c > create mode 100644 OvmfPkg/XenbusDxe/EventChannel.h > create mode 100644 OvmfPkg/XenbusDxe/GrantTable.c > create mode 100644 OvmfPkg/XenbusDxe/GrantTable.h > create mode 100644 OvmfPkg/XenbusDxe/Helpers.c > create mode 100644 OvmfPkg/XenbusDxe/InterlockedCompareExchange16.h > create mode 100644 OvmfPkg/XenbusDxe/X64/InterlockedCompareExchange16.c > create mode 100644 OvmfPkg/XenbusDxe/X64/TestAndClearBit.S > create mode 100644 OvmfPkg/XenbusDxe/X64/hypercall.S > create mode 100644 OvmfPkg/XenbusDxe/X64/hypercall.asm > create mode 100644 OvmfPkg/XenbusDxe/XenBus.c > create mode 100644 OvmfPkg/XenbusDxe/XenBus.h > create mode 100644 OvmfPkg/XenbusDxe/XenHypercall.c > create mode 100644 OvmfPkg/XenbusDxe/XenHypercall.h > create mode 100644 OvmfPkg/XenbusDxe/XenbusDxe.c > create mode 100644 OvmfPkg/XenbusDxe/XenbusDxe.h > create mode 100644 OvmfPkg/XenbusDxe/XenbusDxe.inf > create mode 100644 OvmfPkg/XenbusDxe/Xenstore.c > create mode 100644 OvmfPkg/XenbusDxe/Xenstore.h > > -- > Anthony PERARD > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel