|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/4] xen/virtual-region: Rework how bugframe linkage works
On 18.03.2024 14:24, Andrew Cooper wrote:
> On 18/03/2024 1:17 pm, Jan Beulich wrote:
>> On 18.03.2024 12:04, Andrew Cooper wrote:
>>> --- a/xen/common/virtual_region.c
>>> +++ b/xen/common/virtual_region.c
>>> @@ -9,12 +9,25 @@
>>> #include <xen/spinlock.h>
>>> #include <xen/virtual_region.h>
>>>
>>> +extern const struct bug_frame
>>> + __start_bug_frames_0[], __stop_bug_frames_0[],
>>> + __start_bug_frames_1[], __stop_bug_frames_1[],
>>> + __start_bug_frames_2[], __stop_bug_frames_2[],
>>> + __start_bug_frames_3[], __stop_bug_frames_3[];
>>> +
>>> static struct virtual_region core = {
>>> .list = LIST_HEAD_INIT(core.list),
>>> .text_start = _stext,
>>> .text_end = _etext,
>>> .rodata_start = _srodata,
>>> .rodata_end = _erodata,
>>> +
>>> + .frame = {
>>> + { __start_bug_frames_0, __stop_bug_frames_0 },
>>> + { __start_bug_frames_1, __stop_bug_frames_1 },
>>> + { __start_bug_frames_2, __stop_bug_frames_2 },
>>> + { __start_bug_frames_3, __stop_bug_frames_3 },
>>> + },
>>> };
>>>
>>> /* Becomes irrelevant when __init sections are cleared. */
>>> @@ -22,6 +35,13 @@ static struct virtual_region core_init __initdata = {
>>> .list = LIST_HEAD_INIT(core_init.list),
>>> .text_start = _sinittext,
>>> .text_end = _einittext,
>>> +
>>> + .frame = {
>>> + { __start_bug_frames_0, __stop_bug_frames_0 },
>>> + { __start_bug_frames_1, __stop_bug_frames_1 },
>>> + { __start_bug_frames_2, __stop_bug_frames_2 },
>>> + { __start_bug_frames_3, __stop_bug_frames_3 },
>>> + },
>>> };
>> ... this is now calling yet louder for splitting runtime from init bug
>> frame records.
>
> How do you propose we do this?
>
> We can probably do it for *.init.o objects by renaming the bugframe
> sections too, but unless we can do it for *every* bugframe emitted in
> all init code, splitting this will break things.
On halfway recent toolchains we can pass -Wa,--sectname-subst and then
construct section names derived from the containing text ones.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |