[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/4] build: Alloc space for sched list in the link file
On 18/12/15 17:11, Jonathan Creekmore wrote: >> On Dec 18, 2015, at 11:07 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote: >> >>>>> On 18.12.15 at 17:48, <andrew.cooper3@xxxxxxxxxx> wrote: >>> On 18/12/15 16:40, Jonathan Creekmore wrote: >>>>> On Dec 18, 2015, at 3:01 AM, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> >>>>> wrote: >>>>> >>>>> On 17/12/2015 20:59, Jonathan Creekmore wrote: >>>>>> Creates a section to contain scheduler entry pointers that are gathered >>>>>> together into an array. This will allow, in a follow-on patch, scheduler >>>>>> entries to be automatically gathered together into the array for >>>>>> automatic parsing. >>>>>> >>>>>> CC: Ian Campbell <ian.campbell@xxxxxxxxxx> >>>>>> CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> >>>>>> CC: Keir Fraser <keir@xxxxxxx> >>>>>> CC: Jan Beulich <jbeulich@xxxxxxxx> >>>>>> CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> >>>>>> Signed-off-by: Jonathan Creekmore <jonathan.creekmore@xxxxxxxxx> >>>>>> --- >>>>>> xen/arch/arm/xen.lds.S | 4 ++++ >>>>>> xen/arch/x86/xen.lds.S | 4 ++++ >>>>>> 2 files changed, 8 insertions(+) >>>>>> >>>>>> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S >>>>>> index 0488f37..39a4c86 100644 >>>>>> --- a/xen/arch/arm/xen.lds.S >>>>>> +++ b/xen/arch/arm/xen.lds.S >>>>>> @@ -57,6 +57,10 @@ SECTIONS >>>>>> . = ALIGN(PAGE_SIZE); >>>>>> *(.data.page_aligned) >>>>>> *(.data) >>>>>> + . = ALIGN(8); >>>>>> + __schedulers_start = .; >>>>>> + *(.data.schedulers) >>>>>> + __schedulers_end = .; >>>>> These arrays are only ever used in __init scheduler_init(). They should >>>>> be in .init.data rather than .data, which allows their memory to be >>>>> reclaimed after boot. >>>>> >>>>> With that, Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> >>>> So, they are used in scheduler_init() which is marked __init, but >>> scheduler_alloc >>>> also uses that array (and did before my patch) and it is not marked __init. >>> Ah yes - so they are. Apologies for the noise. This should be in .data >>> and my R-b stands. >> In .rodata perhaps? > I initially put it in .rodata, but the current algorithm for choosing the > scheduler NULLs out > the pointers in the array if the global_init() function fails. To emulate > that behavior, I had to > move the section to .data instead of .rodata. Hmm. That is unfortunate. Best to leave it in .data, and leave fixing the scheduler initialisation to the other scheduler clean-up work; there is plenty of other cleanup work to do, and conflating the two issues is best avoided. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |