[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH V4 10/11] xen/arm: io: Use binary search for mmio handler lookup



Hello Shanker,

On 15/07/16 03:35, Shanker Donthineni wrote:
On 07/14/2016 11:46 AM, Julien Grall wrote:

[...]

+{
+    struct vmmio *vmmio = &v->domain->arch.vmmio;
+    struct mmio_handler key = {.addr = gpa};

I know it is not currently the case, but should not we take into
account the size of the access?


I agree with you, we definitely need to consider size of the access for
traps/emulation drivers similar to what Linux KVM code does currently.
Do you know which emulation drivers are using non aligned accesses?

Sorry, I don't understand your question.



+    const struct mmio_handler *handler;

+    read_lock(&vmmio->lock);
+    handler = bsearch(&key, vmmio->handlers, vmmio->num_entries,
+                      sizeof(*handler), cmp_mmio_handler);
      read_unlock(&vmmio->lock);

      return handler;

[...]

@@ -131,6 +135,10 @@ void register_mmio_handler(struct domain *d,

      vmmio->num_entries++;

+    /* Sort mmio handlers in ascending order based on base address */
+    sort(vmmio->handlers, vmmio->num_entries, sizeof(struct
mmio_handler),
+        cmp_mmio_handler, NULL);

The indentation looks wrong here.


I don't quite understand what you mean. It has 8 spaces, do I need more
than 8 spaces or something else?

If the list of arguments is on multiples lines, the lines should be aligned to the first arguments. I.e:

     sort(foo, bar,
          fish);

Your editor should already do it.

Regards,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.