On 21/05/16 05:48, Emilio G. Cota wrote:
> On Sat, May 21, 2016 at 01:13:20 +0300, Sergey Fedorov wrote:
>> Although the API is mostly intuitive some kernel-doc-style comments
>> wouldn’t hurt, I think. ;-)
> The nit that bothered me is the "external lock needed" bit, but it's
> removed by the subs
On Sun, May 22, 2016 at 09:01:59 +0100, Alex Bennée wrote:
> Emilio G. Cota writes:
> > A small update: I just got rid of all the atomic_read/set's that
> > apply to the hashes, since retries will take care of possible races.
>
> I guess the potential hash-clash from a partially read or set hash
Emilio G. Cota writes:
> On Fri, May 20, 2016 at 22:48:11 -0400, Emilio G. Cota wrote:
>> On Sat, May 21, 2016 at 01:13:20 +0300, Sergey Fedorov wrote:
>> > > +static inline
>> > > +void *qht_do_lookup(struct qht_bucket *head, qht_lookup_func_t func,
>> > > +const void *userp
On 21/05/16 05:48, Emilio G. Cota wrote:
> Thanks for taking a look! If you have time, please check patch 13 out.
> That patch should eventually be merged onto this one.
Actually, I was reviewing the final code with all the series applied :)
I'd like to spend some time and review all the series in
On Fri, May 20, 2016 at 22:48:11 -0400, Emilio G. Cota wrote:
> On Sat, May 21, 2016 at 01:13:20 +0300, Sergey Fedorov wrote:
> > > +static inline
> > > +void *qht_do_lookup(struct qht_bucket *head, qht_lookup_func_t func,
> > > +const void *userp, uint32_t hash)
> > > +{
> > >
Hi Sergey,
Any 'Ack' below means the change has made it to my tree.
On Sat, May 21, 2016 at 01:13:20 +0300, Sergey Fedorov wrote:
> > +#include "qemu/osdep.h"
> > +#include "qemu-common.h"
>
> There's no need in qemu-common.h
Ack
> > +#include "qemu/seqlock.h"
> > +#include "qemu/qdist.h"
> >
Wow, that's really great stuff!
On 14/05/16 06:34, Emilio G. Cota wrote:
> diff --git a/include/qemu/qht.h b/include/qemu/qht.h
> new file mode 100644
> index 000..c2ab8b8
> --- /dev/null
> +++ b/include/qemu/qht.h
> @@ -0,0 +1,66 @@
> +/*
> + * Copyright (C) 2016, Emilio G. Cota
> + *
> + *
This is a fast, scalable chained hash table with optional auto-resizing,
allowing
reads that are concurrent with reads, and reads/writes that are concurrent
with writes to separate buckets.
A hash table with these features will be necessary for the scalability
of the ongoing MTTCG work; before th