search for: unhash

Displaying 20 results from an estimated 143 matches for "unhash".

2015 Apr 01
2
[PATCH 8/9] qspinlock: Generic paravirt support
...hink more I think ;-) > > So bear with me, I've not really pondered this well so it could be full > of holes (again). > > After the cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL) succeeds the > spin_unlock() must do the hash lookup, right? We can make the lookup > unhash. > > If the cmpxchg() fails the unlock will not do the lookup and we must > unhash. The idea being that the result is that any lookup is guaranteed to find an entry, which reduces our worst case lookup cost to whatever the worst case insertion cost was.
2015 Apr 01
2
[PATCH 8/9] qspinlock: Generic paravirt support
...hink more I think ;-) > > So bear with me, I've not really pondered this well so it could be full > of holes (again). > > After the cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL) succeeds the > spin_unlock() must do the hash lookup, right? We can make the lookup > unhash. > > If the cmpxchg() fails the unlock will not do the lookup and we must > unhash. The idea being that the result is that any lookup is guaranteed to find an entry, which reduces our worst case lookup cost to whatever the worst case insertion cost was.
2015 Apr 01
2
[PATCH 8/9] qspinlock: Generic paravirt support
...with me, I've not really pondered this well so it could be full > >>of holes (again). > >> > >>After the cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL) succeeds the > >>spin_unlock() must do the hash lookup, right? We can make the lookup > >>unhash. > >> > >>If the cmpxchg() fails the unlock will not do the lookup and we must > >>unhash. > >The idea being that the result is that any lookup is guaranteed to find > >an entry, which reduces our worst case lookup cost to whatever the worst > >case inse...
2015 Apr 01
2
[PATCH 8/9] qspinlock: Generic paravirt support
...with me, I've not really pondered this well so it could be full > >>of holes (again). > >> > >>After the cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL) succeeds the > >>spin_unlock() must do the hash lookup, right? We can make the lookup > >>unhash. > >> > >>If the cmpxchg() fails the unlock will not do the lookup and we must > >>unhash. > >The idea being that the result is that any lookup is guaranteed to find > >an entry, which reduces our worst case lookup cost to whatever the worst > >case inse...
2019 Sep 03
0
[PATCH v2 26/27] drm/dp_mst: Also print unhashed pointers for malloc/topology references
...%p, but unfortunately if you're trying to debug a use-after-free error caused by a refcounting error then this really isn't terribly useful. On the other hand though, everything in the rest of the DP MST helpers uses hashed pointer values as well and probably isn't useful to convert to unhashed. So, let's just get the best of both worlds and print both the hashed and unhashed pointer in our malloc/topology refcount debugging output. This will hopefully make it a lot easier to figure out which port/mstb is causing KASAN to get upset. Cc: Juston Li <juston.li at intel.com> Cc:...
2019 Sep 27
1
[PATCH v2 26/27] drm/dp_mst: Also print unhashed pointers for malloc/topology references
...unately if you're trying to debug a use-after-free error caused by > a refcounting error then this really isn't terribly useful. On the other > hand though, everything in the rest of the DP MST helpers uses hashed > pointer values as well and probably isn't useful to convert to unhashed. > So, let's just get the best of both worlds and print both the hashed and > unhashed pointer in our malloc/topology refcount debugging output. This > will hopefully make it a lot easier to figure out which port/mstb is > causing KASAN to get upset. > > Cc: Juston Li <j...
2015 Apr 01
0
[PATCH 8/9] qspinlock: Generic paravirt support
...;-) >> So bear with me, I've not really pondered this well so it could be full >> of holes (again). >> >> After the cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL) succeeds the >> spin_unlock() must do the hash lookup, right? We can make the lookup >> unhash. >> >> If the cmpxchg() fails the unlock will not do the lookup and we must >> unhash. > The idea being that the result is that any lookup is guaranteed to find > an entry, which reduces our worst case lookup cost to whatever the worst > case insertion cost was. > I t...
2015 Apr 01
0
[PATCH 8/9] qspinlock: Generic paravirt support
...not really pondered this well so it could be full >>>> of holes (again). >>>> >>>> After the cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL) succeeds the >>>> spin_unlock() must do the hash lookup, right? We can make the lookup >>>> unhash. >>>> >>>> If the cmpxchg() fails the unlock will not do the lookup and we must >>>> unhash. >>> The idea being that the result is that any lookup is guaranteed to find >>> an entry, which reduces our worst case lookup cost to whatever the worst...
2015 Apr 02
3
[PATCH 8/9] qspinlock: Generic paravirt support
On Thu, Apr 02, 2015 at 12:28:30PM -0400, Waiman Long wrote: > On 04/01/2015 05:03 PM, Peter Zijlstra wrote: > >On Wed, Apr 01, 2015 at 03:58:58PM -0400, Waiman Long wrote: > >>On 04/01/2015 02:48 PM, Peter Zijlstra wrote: > >>I am sorry that I don't quite get what you mean here. My point is that in > >>the hashing step, a cpu will need to scan an empty
2015 Apr 02
3
[PATCH 8/9] qspinlock: Generic paravirt support
On Thu, Apr 02, 2015 at 12:28:30PM -0400, Waiman Long wrote: > On 04/01/2015 05:03 PM, Peter Zijlstra wrote: > >On Wed, Apr 01, 2015 at 03:58:58PM -0400, Waiman Long wrote: > >>On 04/01/2015 02:48 PM, Peter Zijlstra wrote: > >>I am sorry that I don't quite get what you mean here. My point is that in > >>the hashing step, a cpu will need to scan an empty
2015 Apr 01
3
[PATCH 8/9] qspinlock: Generic paravirt support
On Wed, Apr 01, 2015 at 12:20:30PM -0400, Waiman Long wrote: > After more careful reading, I think the assumption that the presence of an > unused bucket means there is no match is not true. Consider the scenario: > > 1. cpu 0 puts lock1 into hb[0] > 2. cpu 1 puts lock2 into hb[1] > 3. cpu 2 clears hb[0] > 4. cpu 3 looks for lock2 and doesn't find it Hmm, yes. The only
2015 Apr 01
3
[PATCH 8/9] qspinlock: Generic paravirt support
On Wed, Apr 01, 2015 at 12:20:30PM -0400, Waiman Long wrote: > After more careful reading, I think the assumption that the presence of an > unused bucket means there is no match is not true. Consider the scenario: > > 1. cpu 0 puts lock1 into hb[0] > 2. cpu 1 puts lock2 into hb[1] > 3. cpu 2 clears hb[0] > 4. cpu 3 looks for lock2 and doesn't find it Hmm, yes. The only
2015 Apr 13
1
[PATCH v15 09/15] pvqspinlock: Implement simple paravirt support for the qspinlock
...gt; >I had, namely: > > > > if (!lp) { > > lp = pv_hash(lock, pn); > > > > /* > > * comment > > */ > > lv = cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL); > > if (lv != _Q_LOCKED_VAL) { > > /* we're woken, unhash and return */ > > WRITE_ONCE(*lp, NULL); > > return; > > } > > } > >>+ > >>+ pv_wait(&l->locked, _Q_SLOW_VAL); > > > >If we get a spurious wakeup (due to device interrupts or random kick) > >we'll loop around but ->...
2015 Apr 13
1
[PATCH v15 09/15] pvqspinlock: Implement simple paravirt support for the qspinlock
...gt; >I had, namely: > > > > if (!lp) { > > lp = pv_hash(lock, pn); > > > > /* > > * comment > > */ > > lv = cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL); > > if (lv != _Q_LOCKED_VAL) { > > /* we're woken, unhash and return */ > > WRITE_ONCE(*lp, NULL); > > return; > > } > > } > >>+ > >>+ pv_wait(&l->locked, _Q_SLOW_VAL); > > > >If we get a spurious wakeup (due to device interrupts or random kick) > >we'll loop around but ->...
2016 May 26
2
[PATCH v3 5/6] pv-qspinlock: use cmpxchg_release in __pv_queued_spin_unlock
...ernel/locking/qspinlock_paravirt.h b/kernel/locking/qspinlock_paravirt.h > index a5b1248..2bbffe4 100644 > --- a/kernel/locking/qspinlock_paravirt.h > +++ b/kernel/locking/qspinlock_paravirt.h > @@ -614,7 +614,7 @@ __visible void __pv_queued_spin_unlock(struct qspinlock *lock) > * unhash. Otherwise it would be possible to have multiple @lock > * entries, which would be BAD. > */ > - locked = cmpxchg(&l->locked, _Q_LOCKED_VAL, 0); > + locked = cmpxchg_release(&l->locked, _Q_LOCKED_VAL, 0); > if (likely(locked == _Q_LOCKED_VAL)) > return; T...
2016 May 26
2
[PATCH v3 5/6] pv-qspinlock: use cmpxchg_release in __pv_queued_spin_unlock
...ernel/locking/qspinlock_paravirt.h b/kernel/locking/qspinlock_paravirt.h > index a5b1248..2bbffe4 100644 > --- a/kernel/locking/qspinlock_paravirt.h > +++ b/kernel/locking/qspinlock_paravirt.h > @@ -614,7 +614,7 @@ __visible void __pv_queued_spin_unlock(struct qspinlock *lock) > * unhash. Otherwise it would be possible to have multiple @lock > * entries, which would be BAD. > */ > - locked = cmpxchg(&l->locked, _Q_LOCKED_VAL, 0); > + locked = cmpxchg_release(&l->locked, _Q_LOCKED_VAL, 0); > if (likely(locked == _Q_LOCKED_VAL)) > return; T...
2020 Sep 29
12
Human readable .ssh/known_hosts?
Hi list members, just tried to get some old records out of my known_hosts, which is 'HashKnownHosts yes'. Is there a way to unhash host names and/or IPs? Google tells about, how to add hosts, but not the opposite, may be I miss some thing. Is this does not work at all, is there a best practice for cleaning old hosts and keys out? Thanks, Martin! -- Martin GnuPG Key Fingerprint, KeyID '4FBE451A': '2237 1E95 8E...
2015 Apr 02
0
[PATCH 8/9] qspinlock: Generic paravirt support
...MB + * [RmW] l->locked ?= _Q_SLOW_VAL [L] hb + * + * Matches the xchg() in pv_queue_spin_unlock(). + */ + o = cmpxchg(&l->locked, _Q_LOCKED_VAL, _Q_SLOW_VAL); + if (!o) { + /* + * The lock got unlocked before we could set + * _Q_SLOW_VAL, we must unhash ourselves. + */ + WRITE_ONCE(hb->lock, NULL); + goto done; + } + BUG_ON(o != _Q_LOCKED_VAL); + /* + * At this point _Q_SLOW_VAL is visible and the unlock + * will do the lookup. The lookup hard relies on the + * entry being visible -- which it should be. Unlock + * wi...
2018 Apr 30
2
Gluster rebalance taking many years
2007 Aug 27
2
Benchmarks with TextMate's manual
The following benchmarks have been obtained using the TextMate manual as the input source: <http://macromates.com/textmate/manual/source.tbz> Using PHP Markdown, parsing the 24 files separately (with the reference file appended to each of them), I get this (on an iBook G4 1.2 Ghz): Total Avg. Min. Q1. Med. Q3. Max. Parse Time (ms):