Displaying 20 results from an estimated 64 matches for "parainstruct".
2007 Apr 18
3
Section mismatch in parainstructions
Is it OK for section .parainstructions to reference
exit.text?
I'm seeing:
WARNING: drivers/net/hamradio/scc.o - Section mismatch: reference to .exit.text: from .parainstructions after '' (at offset 0x0)
WARNING: drivers/net/hamradio/scc.o - Section mismatch: reference to .exit.text: from .parainstructions after '&...
2007 Apr 18
3
Section mismatch in parainstructions
Is it OK for section .parainstructions to reference
exit.text?
I'm seeing:
WARNING: drivers/net/hamradio/scc.o - Section mismatch: reference to .exit.text: from .parainstructions after '' (at offset 0x0)
WARNING: drivers/net/hamradio/scc.o - Section mismatch: reference to .exit.text: from .parainstructions after '&...
2007 Apr 18
1
2.6.19-rc5-mm2: warnings in MODPOST and later
...With the exception of the "drivers/ide/pci/atiixp:FFFF05", none of these
> warnings is present in Linus' tree.
yes, lots of new section mismatch warnings.
A large number of them are due to the paravirt patches:
WARNING: vmlinux - Section mismatch: reference to .init.text: from .parainstructions between '__start_parainstructions' (at offset 0xc0458470) and '__stop_parainstructions'
WARNING: vmlinux - Section mismatch: reference to .init.text: from .parainstructions between '__start_parainstructions' (at offset 0xc0458478) and '__stop_parainstructions'
WA...
2007 Apr 18
1
2.6.19-rc5-mm2: warnings in MODPOST and later
...With the exception of the "drivers/ide/pci/atiixp:FFFF05", none of these
> warnings is present in Linus' tree.
yes, lots of new section mismatch warnings.
A large number of them are due to the paravirt patches:
WARNING: vmlinux - Section mismatch: reference to .init.text: from .parainstructions between '__start_parainstructions' (at offset 0xc0458470) and '__stop_parainstructions'
WARNING: vmlinux - Section mismatch: reference to .init.text: from .parainstructions between '__start_parainstructions' (at offset 0xc0458478) and '__stop_parainstructions'
WA...
2020 Apr 08
0
[RFC PATCH 00/26] Runtime paravirt patching
...our main sets of patches in this series:
>
> 1. PV-ops management (patches 1-10, 20): mostly infrastructure and
> refactoring pieces to make paravirt patching usable at runtime. For the
> most part scoped under CONFIG_PARAVIRT_RUNTIME.
>
> Patches 1-7, to persist part of parainstructions in memory:
> "x86/paravirt: Specify subsection in PVOP macros"
> "x86/paravirt: Allow paravirt patching post-init"
> "x86/paravirt: PVRTOP macros for PARAVIRT_RUNTIME"
> "x86/alternatives: Refactor alternatives_smp_module*
> "...
2007 Apr 18
1
[PATCH] (with benchmarks) binary patching of paravirt_ops call sites
...pe, p->instr, p->len);
+ /* Pad the rest with nops */
+ diff = p->len - used;
+ for (i = used; diff > 0; diff -= k, i += k) {
+ k = diff;
+ if (k > ASM_NOP_MAX)
+ k = ASM_NOP_MAX;
+ memcpy(p->instr + i, noptable[k], k);
+ }
+ }
+}
+extern struct paravirt_patch __start_parainstructions[],
+ __stop_parainstructions[];
+#else
+void apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end)
+{
+}
+extern char __start_parainstructions[], __stop_parainstructions[];
+#endif /* CONFIG_PARAVIRT */
+
void __init alternative_instructions(void)
{
apply_alternatives(__a...
2007 Apr 18
1
[PATCH] (with benchmarks) binary patching of paravirt_ops call sites
...pe, p->instr, p->len);
+ /* Pad the rest with nops */
+ diff = p->len - used;
+ for (i = used; diff > 0; diff -= k, i += k) {
+ k = diff;
+ if (k > ASM_NOP_MAX)
+ k = ASM_NOP_MAX;
+ memcpy(p->instr + i, noptable[k], k);
+ }
+ }
+}
+extern struct paravirt_patch __start_parainstructions[],
+ __stop_parainstructions[];
+#else
+void apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end)
+{
+}
+extern char __start_parainstructions[], __stop_parainstructions[];
+#endif /* CONFIG_PARAVIRT */
+
void __init alternative_instructions(void)
{
apply_alternatives(__a...
2023 Jun 08
3
[RFC PATCH 0/3] x86/paravirt: Get rid of paravirt patching
...his removes _some_ of the paravirt macro maze, but most of it needs
to stay due to the need of hiding the call instructions from the
compiler in order to avoid needless register save/restore.
What is going away is the nasty stacking of alternative and paravirt
patching and (of course) the special .parainstructions linker section.
I have tested the series on bare metal and as Xen PV domain to still
work.
RFC because I'm quite sure there will be some objtool work needed
(at least removing the specific paravirt handling).
Juergen Gross (3):
x86/paravirt: move some functions and defines to alternati...
2023 Jun 08
3
[RFC PATCH 0/3] x86/paravirt: Get rid of paravirt patching
...his removes _some_ of the paravirt macro maze, but most of it needs
to stay due to the need of hiding the call instructions from the
compiler in order to avoid needless register save/restore.
What is going away is the nasty stacking of alternative and paravirt
patching and (of course) the special .parainstructions linker section.
I have tested the series on bare metal and as Xen PV domain to still
work.
RFC because I'm quite sure there will be some objtool work needed
(at least removing the specific paravirt handling).
Juergen Gross (3):
x86/paravirt: move some functions and defines to alternati...
2017 Oct 04
0
[PATCH 08/13] x86/paravirt: Clean up paravirt_types.h
..._clobber] "i" (clobber)
-
-/*
- * Generate some code, and mark it as patchable by the
- * apply_paravirt() alternate instruction patcher.
- */
-#define _paravirt_alt(insn_string, type, clobber) \
- "771:\n\t" insn_string "\n" "772:\n" \
- ".pushsection .parainstructions,\"a\"\n" \
- _ASM_ALIGN "\n" \
- _ASM_PTR " 771b\n" \
- " .byte " type "\n" \
- " .byte 772b-771b\n" \
- " .short " clobber "\n" \
- ".popsection\n"
-
-/* Generate patchable code, wi...
2007 Apr 18
7
[patch 0/6] Various cleanups
Hi Andi,
Here's a little batch of cleanups:
- re-enable VDSO when PARAVIRT is enabled
- make the parainstructions symbols match the
other altinstructions naming convention
- add kernel command-line options to disable altinstructions for
smp and pv_ops
Oh, and I'm mailing your noreplacement patch back at you, for no
particularly good reason.
J
--
2007 Apr 18
7
[patch 0/6] Various cleanups
Hi Andi,
Here's a little batch of cleanups:
- re-enable VDSO when PARAVIRT is enabled
- make the parainstructions symbols match the
other altinstructions naming convention
- add kernel command-line options to disable altinstructions for
smp and pv_ops
Oh, and I'm mailing your noreplacement patch back at you, for no
particularly good reason.
J
--
2007 Apr 18
1
[PATCH] lguest: clean up some l"references .init.text" warnings
Thanks to Andrew for pointing these out.
This patch moves the parvirtprobe section into .init.data: it's only
used in very very early boot, and for similar reasons, puts
lguest_maybe_init and lguest_memory_setup in init.text.
As well as fixing some warnings, this frees up a tiny bit more memory.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r ecec388180b2
2007 Apr 18
1
[PATCH] lguest: clean up some l"references .init.text" warnings
Thanks to Andrew for pointing these out.
This patch moves the parvirtprobe section into .init.data: it's only
used in very very early boot, and for similar reasons, puts
lguest_maybe_init and lguest_memory_setup in init.text.
As well as fixing some warnings, this frees up a tiny bit more memory.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r ecec388180b2
2017 Oct 04
1
[PATCH 11/13] x86/paravirt: Add paravirt alternatives infrastructure
...runtime code. This mismatch hurts debuggability and makes
the assembly code harder to understand.
It also causes the ORC unwinder to produce KASAN warnings like:
BUG: KASAN: stack-out-of-bounds in deref_stack_reg+0x123/0x140
This warning is due to the fact that objtool doesn't know about
parainstructions, so it doesn't know about the "pushfq; pop %rax"
sequence above.
Prepare to fix both of these issues (debuggability and ORC KASAN
warnings) by adding a paravirt alternatives infrastructure to put the
native instructions in .text by default. Then, when booting on a
hypervisor, re...
2018 Dec 17
0
[PATCH v3 04/12] Revert "x86/paravirt: Work around GCC inlining bugs when compiling paravirt ops"
..._clobber] "i" (clobber)
+/*
+ * Generate some code, and mark it as patchable by the
+ * apply_paravirt() alternate instruction patcher.
+ */
+#define _paravirt_alt(insn_string, type, clobber) \
+ "771:\n\t" insn_string "\n" "772:\n" \
+ ".pushsection .parainstructions,\"a\"\n" \
+ _ASM_ALIGN "\n" \
+ _ASM_PTR " 771b\n" \
+ " .byte " type "\n" \
+ " .byte 772b-771b\n" \
+ " .short " clobber "\n" \
+ ".popsection\n"
+
/* Generate patchable code, wi...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 10/17] paravirt_ops - boot changes
...tructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
+ __alt_instructions = .;
*(.altinstructions)
+ __alt_instructions_end = .;
}
- __alt_instructions_end = .;
.altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
*(.altinstr_replacement)
}
+ . = ALIGN(8);
+ .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
+ __start_parainstructions = .;
+ *(.parainstructions)
+ __stop_parainstructions = .;
+ }
/* .exit.text is discard at runtime, not link time, to deal with references
from .altinstructions and .eh_frame */
.exit.text : AT(ADDR(.exit.tex...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 10/17] paravirt_ops - boot changes
...tructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
+ __alt_instructions = .;
*(.altinstructions)
+ __alt_instructions_end = .;
}
- __alt_instructions_end = .;
.altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
*(.altinstr_replacement)
}
+ . = ALIGN(8);
+ .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
+ __start_parainstructions = .;
+ *(.parainstructions)
+ __stop_parainstructions = .;
+ }
/* .exit.text is discard at runtime, not link time, to deal with references
from .altinstructions and .eh_frame */
.exit.text : AT(ADDR(.exit.tex...
2017 Oct 04
31
[PATCH 00/13] x86/paravirt: Make pv ops code generation more closely match reality
...mmon runtime cases (everything except Xen and vSMP),
vmlinux disassembly now matches what the actual runtime code looks
like. This improves debuggability and kernel developer sanity (a
precious resource).
- It fixes a KASAN warning in the ORC unwinder due to objtool not
understanding the .parainstructions stuff.
- It's hopefully a first step in simplifying paravirt patching by
getting rid of .parainstructions, pv ops, and apply_paravirt()
completely. (I think Xen can be changed to set CPU feature bits to
specify which ops it needs during early boot, then those ops can be
patched in...
2017 Oct 04
31
[PATCH 00/13] x86/paravirt: Make pv ops code generation more closely match reality
...mmon runtime cases (everything except Xen and vSMP),
vmlinux disassembly now matches what the actual runtime code looks
like. This improves debuggability and kernel developer sanity (a
precious resource).
- It fixes a KASAN warning in the ORC unwinder due to objtool not
understanding the .parainstructions stuff.
- It's hopefully a first step in simplifying paravirt patching by
getting rid of .parainstructions, pv ops, and apply_paravirt()
completely. (I think Xen can be changed to set CPU feature bits to
specify which ops it needs during early boot, then those ops can be
patched in...