qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-ppc] [PATCH 1/2] Make default boot order machine


From: Alexander Graf
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH 1/2] Make default boot order machine specific
Date: Wed, 24 Oct 2012 00:47:34 +0200

On 24.10.2012, at 00:43, David Gibson wrote:

> On Tue, Oct 23, 2012 at 12:20:08PM +0200, Alexander Graf wrote:
>> 
>> On 23.10.2012, at 12:09, Avik Sil wrote:
>> 
>>> This patch makes default boot order machine specific instead of
>>> set globally. The default boot order can be set per machine in
>>> QEMUMachine default_machine_opts, or by the command line using
>>> -machine <machine_name>,boot=<boot_devices>, or by standard -boot
>>> option. This allows a machine to receive a NULL boot order when
>>> -boot isn't used and take an appropriate action accordingly. This
>>> helps machine boots from the devices as set in guest's non-volatile
>>> memory location in case no boot order is provided by the user.
>>> 
>>> Signed-off-by: Avik Sil <address@hidden>
>>> ---
>>> hw/nseries.c      |  2 ++
>>> hw/pc_piix.c      | 13 ++++++++++++-
>>> hw/ppc_newworld.c |  1 +
>>> hw/ppc_oldworld.c |  1 +
>>> hw/ppc_prep.c     |  1 +
>>> hw/sun4m.c        | 10 ++++++++++
>>> hw/sun4u.c        |  3 +++
>> 
>> That feels like too much magic for my taste. Can't we have some
>> default macro (or even the explicit "cad" thing) that we push to
>> _every_ machine description out there? The next patch to implement
>> boot= for pseries would then remove this default value for the
>> pseries machine.
> 
> I'm not 100% clear on what you mean here.  Do you just mean:
>       #define DEFAULT_BOOT_ORDER      "boot=cad"
> and then we use
>       .default_machine_opts = DEFAULT_BOOT_ORDER,
> 
> or something else?

I mean that this patch only patches 7 files. Check this out:

dekai:qemu alex$ grep -R register_machine hw
hw/alpha_dp264.c:    qemu_register_machine(&clipper_machine);
hw/an5206.c:    qemu_register_machine(&an5206_machine);
hw/axis_dev88.c:    qemu_register_machine(&axisdev88_machine);
hw/boards.h:int qemu_register_machine(QEMUMachine *m);
hw/collie.c:    qemu_register_machine(&collie_machine);
hw/dummy_m68k.c:    qemu_register_machine(&dummy_m68k_machine);
hw/exynos4_boards.c:    
qemu_register_machine(&exynos4_machines[EXYNOS4_BOARD_NURI]);
hw/exynos4_boards.c:    
qemu_register_machine(&exynos4_machines[EXYNOS4_BOARD_SMDKC210]);
hw/gumstix.c:    qemu_register_machine(&connex_machine);
hw/gumstix.c:    qemu_register_machine(&verdex_machine);
hw/highbank.c:    qemu_register_machine(&highbank_machine);
hw/integratorcp.c:    qemu_register_machine(&integratorcp_machine);
hw/leon3.c:    qemu_register_machine(&leon3_generic_machine);
hw/lm32_boards.c:    qemu_register_machine(&lm32_uclinux_machine);
hw/lm32_boards.c:    qemu_register_machine(&lm32_evr_machine);
hw/mainstone.c:    qemu_register_machine(&mainstone2_machine);
hw/mcf5208.c:    qemu_register_machine(&mcf5208evb_machine);
hw/milkymist.c:    qemu_register_machine(&milkymist_machine);
hw/mips_fulong2e.c:    qemu_register_machine(&mips_fulong2e_machine);
hw/mips_jazz.c:    qemu_register_machine(&mips_magnum_machine);
hw/mips_jazz.c:    qemu_register_machine(&mips_pica61_machine);
hw/mips_malta.c:    qemu_register_machine(&mips_malta_machine);
hw/mips_mipssim.c:    qemu_register_machine(&mips_mipssim_machine);
hw/mips_r4k.c:    qemu_register_machine(&mips_machine);
hw/musicpal.c:    qemu_register_machine(&musicpal_machine);
hw/nseries.c:    qemu_register_machine(&n800_machine);
hw/nseries.c:    qemu_register_machine(&n810_machine);
hw/omap_sx1.c:    qemu_register_machine(&sx1_machine_v2);
hw/omap_sx1.c:    qemu_register_machine(&sx1_machine_v1);
hw/palm.c:    qemu_register_machine(&palmte_machine);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v1_1);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v1_0);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v0_15);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v0_14);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v0_13);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v0_12);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v0_11);
hw/pc_piix.c:    qemu_register_machine(&pc_machine_v0_10);
hw/pc_piix.c:    qemu_register_machine(&isapc_machine);
hw/pc_piix.c:    qemu_register_machine(&xenfv_machine);
hw/petalogix_ml605_mmu.c:    qemu_register_machine(&petalogix_ml605_machine);
hw/petalogix_s3adsp1800_mmu.c:    
qemu_register_machine(&petalogix_s3adsp1800_machine);
hw/ppc405_boards.c:    qemu_register_machine(&ref405ep_machine);
hw/ppc405_boards.c:    qemu_register_machine(&taihu_machine);
hw/ppc440_bamboo.c:    qemu_register_machine(&bamboo_machine);
hw/ppc_newworld.c:    qemu_register_machine(&core99_machine);
hw/ppc_oldworld.c:    qemu_register_machine(&heathrow_machine);
hw/ppc_prep.c:    qemu_register_machine(&prep_machine);
hw/ppce500_mpc8544ds.c:    qemu_register_machine(&mpc8544ds_machine);
hw/r2d.c:    qemu_register_machine(&r2d_machine);
hw/realview.c:    qemu_register_machine(&realview_eb_machine);
hw/realview.c:    qemu_register_machine(&realview_eb_mpcore_machine);
hw/realview.c:    qemu_register_machine(&realview_pb_a8_machine);
hw/realview.c:    qemu_register_machine(&realview_pbx_a9_machine);
hw/s390-virtio.c:    qemu_register_machine(&s390_machine);
hw/shix.c:    qemu_register_machine(&shix_machine);
hw/spapr.c:    qemu_register_machine(&spapr_machine);
hw/spitz.c:    qemu_register_machine(&akitapda_machine);
hw/spitz.c:    qemu_register_machine(&spitzpda_machine);
hw/spitz.c:    qemu_register_machine(&borzoipda_machine);
hw/spitz.c:    qemu_register_machine(&terrierpda_machine);
hw/stellaris.c:    qemu_register_machine(&lm3s811evb_machine);
hw/stellaris.c:    qemu_register_machine(&lm3s6965evb_machine);
hw/sun4m.c:    qemu_register_machine(&ss5_machine);
hw/sun4m.c:    qemu_register_machine(&ss10_machine);
hw/sun4m.c:    qemu_register_machine(&ss600mp_machine);
hw/sun4m.c:    qemu_register_machine(&ss20_machine);
hw/sun4m.c:    qemu_register_machine(&voyager_machine);
hw/sun4m.c:    qemu_register_machine(&ss_lx_machine);
hw/sun4m.c:    qemu_register_machine(&ss4_machine);
hw/sun4m.c:    qemu_register_machine(&scls_machine);
hw/sun4m.c:    qemu_register_machine(&sbook_machine);
hw/sun4m.c:    qemu_register_machine(&ss1000_machine);
hw/sun4m.c:    qemu_register_machine(&ss2000_machine);
hw/sun4m.c:    qemu_register_machine(&ss2_machine);
hw/sun4u.c:    qemu_register_machine(&sun4u_machine);
hw/sun4u.c:    qemu_register_machine(&sun4v_machine);
hw/sun4u.c:    qemu_register_machine(&niagara_machine);
hw/tosa.c:    qemu_register_machine(&tosapda_machine);
hw/versatilepb.c:    qemu_register_machine(&versatilepb_machine);
hw/versatilepb.c:    qemu_register_machine(&versatileab_machine);
hw/vexpress.c:    qemu_register_machine(&vexpress_a9_machine);
hw/vexpress.c:    qemu_register_machine(&vexpress_a15_machine);
hw/virtex_ml507.c:    qemu_register_machine(&virtex_machine);
hw/xen_machine_pv.c:    qemu_register_machine(&xenpv_machine);
hw/xilinx_zynq.c:    qemu_register_machine(&zynq_machine);
hw/xtensa_lx60.c:    qemu_register_machine(&xtensa_lx60_machine);
hw/xtensa_lx60.c:    qemu_register_machine(&xtensa_lx200_machine);
hw/xtensa_sim.c:    qemu_register_machine(&xtensa_sim_machine);
hw/z2.c:    qemu_register_machine(&z2_machine);

Looks like a lot more files to me :).

> 
>> The way the patch works right now, the "make machine specific" patch
>> indirectly also changes the behavior for a bunch of machines.
> 
> A bunch?  I thought the only machine whose behaviour changed was
> pseries.  

It changes the behavior of all machines that are not patched, because they will 
fall back to no boot order now.


Alex

> I agree that moving the behaviour change into a separate
> patch would be a better idea, but if there are machines other than
> pseries with changed behaviour by this patch, then that's a plain old
> bug, rather than a mere question of patch elegance.
> 
> -- 
> David Gibson                  | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au        | minimalist, thank you.  NOT _the_ 
> _other_
>                               | _way_ _around_!
> http://www.ozlabs.org/~dgibson
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]