[SeaBIOS] [RFC 0/3] NVDIMM booting support

Marc Marí markmb at redhat.com
Mon Sep 21 16:41:06 CET 2015


On Mon, 21 Sep 2015 12:17:53 -0400
"Kevin O'Connor" <kevin at koconnor.net> wrote:

> On Mon, Sep 21, 2015 at 03:14:04PM +0200, Marc Marí wrote:
> > Implement support for booting from a PMEM region compatible with
> > NVDIMM and NFIT specifications.
> > 
> > The current implementation is still slow. When running a Linux
> > guest on top of QEMU in x86:
> > 
> > Using actual -kernel option:
> > QEMU startup time: .080
> > BIOS startup time: .060
> > Kernel setup time: .590
> > Total time: .730
> > 
> > Using -kernel option and fw_cfg DMA patch:
> > QEMU startup time: .080
> > BIOS startup time: .039
> > Kernel setup time: .002
> > Total time: .121
> > 
> > Using this patch series and adding the vmlinuz as a NVDIMM device:
> > QEMU startup time: .080
> > BIOS startup time: .065
> > Kernel setup time: .015
> > Total time: .160
> 
> Thanks Marc - very interesting!
> 
> Do you think NVDIMM support will ultimately be faster than DMA or are
> there other advantages to using NVDIMMs?

I've been experimenting with different approaches to improve speed, as
you've already seen. I still don't know which will be faster.

The NVDIMM code is missing some improvements. I think it will be around
the same speed as fw_cfg DMA. Unless I missed a big improvement.

But the advantage of NVDIMMs is flexibility. It is just a memory region.
So you can put there anything that you want to access fast. It may be a
vmlinuz, an initramfs, a normal file, or whatever. Maybe combining both
fw_cfg DMA and NVDIMM can give good times for booting a minimal system
up to the userspace.

At the moment, this NVDIMM code is just experimental and for testing to
see its performance. But I tend to focus on the tree I have in front of
me instead of the forest, so it's better if I share this code and get a
few comments on it before getting into conclusions.

(When I say NVDIMM I should say NVDIMM PMEM or DAX. But as there's still
no block mode in QEMU, it doesn't really matter).

Thanks
Marc



More information about the SeaBIOS mailing list