Re: [RFC PATCH] video/logo: introduce new system state for checking if logos are freed
From: Heiko Schocher <hidden>
Date: 2015-05-26 07:18:00
Also in:
lkml
Hello Tomi, Am 26.05.2015 08:54, schrieb Tomi Valkeinen:
On 26/05/15 06:56, Heiko Schocher wrote:quoted
quoted
Without locking, the initmem may be freed while fb_find_logo() is running.Yes, you are right, that must be added ... but has such a change a chance to go in mainline?I don't know. To be honest, this whole thing feels a bit like hackery. I
Full Ack ;-)
think initdata should only be accessed from initcalls, never asynchronously.
Yes.
quoted
BTW: Could this not be currently a problem on multicore systems? If lets say core 2 just draws the logo, another core 1 calls fb_logo_late_init() and later core 1 free_initmem(), while the core 2 still draws it?Yes, I think so... So, maybe it would be better to not even try to go forward with the current approach. Two approaches come to my mind: 1) Keep the logos in the memory, and don't even try to free them. I don't know many bytes they are in total, though.
That was my first thought too... but we waste memory ... not nice.
2) Make a copy of the logos to a kmalloced area at some early boot stage. Then manually free the logos at some point (after the first access to the logos? after a certain time (urgh...)?).
maybe yes ... or ... 3) wait for all cores, until they reached SYSTEM_FREEING_MEM and free init mem only than? But are all cores used/started when booting? 4) draw only one logo even on multicores ... why must every core draw a logo? Currently each core draws the logo, and on a system with more than 4 cores, I think this looks not really good ... Hmm... I do not really have a lot experience in this area ... but why is the logo only drawed when booting? Is there nothing like a "redraw" of it? Maybe others have here a good idea? bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany