Skip to contentSkip to conversation

stop_con_cpu_nowait() usage in set_mtrr()

DISCUSSION Tejun Heo 1 participant 1 message Mar 29, 2011

lore
Share & tools
lore

Tejun Heo

author
#0 lore raw

Hello, Suresh, Thomas.

This is about the openSUSE complete system freeze at start bug Thomas just pinged about - https://bugzilla.novell.com/show_bug.cgi?id=672008

I looked through the set_mtrr() code and it's implementing its own stop_machine() using stop_one_cpu_nowait(). This isn't safe. There is only one stop cpu execution context per cpu and the custom implementation can race against the standard stop_machine() - it can deadlock with each holding some of the execution contexts and neither stepping away.

Suresh, is there any reason why set_mtrr() is using its own synchronization instead of stop_machine()?

Thanks.

Signature · 1 line
tejun