lkml.org 
[lkml]   [2007]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 6/6] Allow boot-time disable of paravirt_ops patching
    Add "noreplace-paravirt" to disable paravirt_ops patching.

    Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>

    ---
    Documentation/kernel-parameters.txt | 3 +++
    arch/i386/kernel/alternative.c | 13 +++++++++++++
    2 files changed, 16 insertions(+)

    ===================================================================
    --- a/Documentation/kernel-parameters.txt
    +++ b/Documentation/kernel-parameters.txt
    @@ -64,6 +64,7 @@ parameter is applicable:
    GENERIC_TIME The generic timeofday code is enabled.
    NFS Appropriate NFS support is enabled.
    OSS OSS sound support is enabled.
    + PV_OPS A paravirtualized kernel
    PARIDE The ParIDE subsystem is enabled.
    PARISC The PA-RISC architecture is enabled.
    PCI PCI bus support is enabled.
    @@ -1134,6 +1135,8 @@ and is between 256 and 4096 characters.
    nomca [IA-64] Disable machine check abort handling

    nomce [IA-32] Machine Check Exception
    +
    + noreplace-paravirt [IA-32,PV_OPS] Don't patch paravirt_ops

    noreplace-smp [IA-32,SMP] Don't replace SMP instructions
    with UP alternatives
    ===================================================================
    --- a/arch/i386/kernel/alternative.c
    +++ b/arch/i386/kernel/alternative.c
    @@ -30,6 +30,16 @@ static int __init setup_noreplace_smp(ch
    }
    __setup("noreplace-smp", setup_noreplace_smp);

    +#ifdef CONFIG_PARAVIRT
    +static int noreplace_paravirt = 0;
    +
    +static int __init setup_noreplace_paravirt(char *str)
    +{
    + noreplace_paravirt = 1;
    + return 1;
    +}
    +__setup("noreplace-paravirt", setup_noreplace_paravirt);
    +#endif

    #define DPRINTK(fmt, args...) if (debug_alternative) \
    printk(KERN_DEBUG fmt, args)
    @@ -329,6 +339,9 @@ void apply_paravirt(struct paravirt_patc
    {
    struct paravirt_patch *p;

    + if (noreplace_paravirt)
    + return;
    +
    for (p = start; p < end; p++) {
    unsigned int used;

    --

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-04-04 03:39    [W:0.021 / U:0.112 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site