Size: a a a

2019 May 17

LS

Lev Serebryakov in freebsd_ru
Но может просто arc_adjust_cb() пофиг на этот лок? Взят-не-взят, не важно?
источник

LS

Lev Serebryakov in freebsd_ru
Там без этого лока вызывается arc_adjust()
источник

LS

Lev Serebryakov in freebsd_ru
А перед этим сам фреймоврк вызывает arc_reap_cb_check()
источник

LS

Lev Serebryakov in freebsd_ru
Которому, каежется, тоже этот лок не нужен
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
что?!
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
ты дальше смотри. он дальше лок берет.
источник

LS

Lev Serebryakov in freebsd_ru
Под локом мы правим arc_adjust_needed...
источник

LS

Lev Serebryakov in freebsd_ru
Дальше берёт, да
источник

LS

Lev Serebryakov in freebsd_ru
И вот дальше не важно откуда его будили
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
охшит.
источник

LS

Lev Serebryakov in freebsd_ru
Я тоже кажется нашёл охшит
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
если еще раз надо сжаться то он нереактивируется же
источник

LS

Lev Serebryakov in freebsd_ru
arc_adjust_cb_check()  возвращает arc_adjust_needed
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
ну
источник

LS

Lev Serebryakov in freebsd_ru
А если мы пробудили поток ДО снятия лока то у нас нет барьероа
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
я тебе про что
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
а на что тебе барьер?
источник

LS

Lev Serebryakov in freebsd_ru
и этот _check может не увидеть поставленное TRUE
источник

LS

Lev Serebryakov in freebsd_ru
Потому что оно не volatile
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
точнее так, что тебе барьер в другом треде?
источник