From: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com> To: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org, "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com> Subject: [PATCH] i386: load kernel on xen using DMA Date: Mon, 26 Apr 2021 05:47:10 +0200 [thread overview] Message-ID: <20210426034709.595432-1-marmarek@invisiblethingslab.com> (raw) Kernel on Xen is loaded via fw_cfg. Previously it used non-DMA version, which loaded the kernel (and initramfs) byte by byte. Change this to DMA, to load in bigger chunks. This change alone reduces load time of a (big) kernel+initramfs from ~10s down to below 1s. This change was suggested initially here: https://lore.kernel.org/xen-devel/20180216204031.000052e9@gmail.com/ Apparently this alone is already enough to get massive speedup. Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- hw/i386/pc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 8a84b25a03..14e43d4da4 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -839,7 +839,8 @@ void xen_load_linux(PCMachineState *pcms) assert(MACHINE(pcms)->kernel_filename != NULL); - fw_cfg = fw_cfg_init_io(FW_CFG_IO_BASE); + fw_cfg = fw_cfg_init_io_dma(FW_CFG_IO_BASE, FW_CFG_IO_BASE + 4, + &address_space_memory); fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); rom_set_fw(fw_cfg); -- 2.26.3
WARNING: multiple messages have this Message-ID (diff)
From: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com> To: qemu-devel@nongnu.org Cc: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org Subject: [PATCH] i386: load kernel on xen using DMA Date: Mon, 26 Apr 2021 05:47:10 +0200 [thread overview] Message-ID: <20210426034709.595432-1-marmarek@invisiblethingslab.com> (raw) Kernel on Xen is loaded via fw_cfg. Previously it used non-DMA version, which loaded the kernel (and initramfs) byte by byte. Change this to DMA, to load in bigger chunks. This change alone reduces load time of a (big) kernel+initramfs from ~10s down to below 1s. This change was suggested initially here: https://lore.kernel.org/xen-devel/20180216204031.000052e9@gmail.com/ Apparently this alone is already enough to get massive speedup. Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- hw/i386/pc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 8a84b25a03..14e43d4da4 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -839,7 +839,8 @@ void xen_load_linux(PCMachineState *pcms) assert(MACHINE(pcms)->kernel_filename != NULL); - fw_cfg = fw_cfg_init_io(FW_CFG_IO_BASE); + fw_cfg = fw_cfg_init_io_dma(FW_CFG_IO_BASE, FW_CFG_IO_BASE + 4, + &address_space_memory); fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); rom_set_fw(fw_cfg); -- 2.26.3
next reply other threads:[~2021-04-26 3:48 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-26 3:47 Marek Marczykowski-Górecki [this message] 2021-04-26 3:47 ` [PATCH] i386: load kernel on xen using DMA Marek Marczykowski-Górecki 2021-06-18 8:54 ` Alex Bennée 2024-02-17 3:22 ` Marek Marczykowski-Górecki 2024-03-08 17:17 ` Anthony PERARD
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210426034709.595432-1-marmarek@invisiblethingslab.com \ --to=marmarek@invisiblethingslab.com \ --cc=qemu-devel@nongnu.org \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.