mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 11:04:20 +00:00
Remove the wfe() for bounded wait in bakery_lock
This patch is an optimization in the bakery_lock_get() function which removes the wfe() when waiting for other contenders to choose their ticket i.e when their `entering` flag is set. Since the time taken to execute bakery_get_ticket() by other contenders is bounded, this wait is a bounded time wait. Hence the removal of wfe() and the corresponding sev() and dsb() in bakery_get_ticket() may result in better time performance during lock acquisition. Change-Id: I141bb21294226b54cb6e89e7cac0175c553afd8d
This commit is contained in:
parent
1c73ffbd4c
commit
d4f4ad90f9
1 changed files with 1 additions and 3 deletions
|
@ -107,8 +107,6 @@ static unsigned int bakery_get_ticket(bakery_lock_t *bakery, unsigned int me)
|
|||
++my_ticket;
|
||||
bakery->number[me] = my_ticket;
|
||||
bakery->entering[me] = 0;
|
||||
dsb();
|
||||
sev();
|
||||
|
||||
return my_ticket;
|
||||
}
|
||||
|
@ -151,7 +149,7 @@ void bakery_lock_get(bakery_lock_t *bakery)
|
|||
|
||||
/* Wait for the contender to get their ticket */
|
||||
while (bakery->entering[they])
|
||||
wfe();
|
||||
;
|
||||
|
||||
/*
|
||||
* If the other party is a contender, they'll have non-zero
|
||||
|
|
Loading…
Add table
Reference in a new issue