Re: [RFC] Fix the kmod internal list behavior?

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

 



On Tue, May 07, 2013 at 09:50:56PM -0300, Lucas De Marchi wrote:
> On Tue, May 7, 2013 at 9:15 PM, Yang Chengwei <chengwei.yang@xxxxxxxxx> wrote:
> > On Tue, May 07, 2013 at 12:14:59PM -0300, Lucas De Marchi wrote:
> >> On Tue, May 7, 2013 at 10:54 AM, Yang Chengwei <chengwei.yang@xxxxxxxxx> wrote:
> >> > Hi List,
> >> >
> >> > I just found that there are some minor issues in kmod iternal list
> >> > implementation implemented by libkmod-list.c.
> >> >
> >> > Say
> >> >         1. list_node_append() is identical with list_node_insert_before(),
> >> >         so somehow the list_node_append() in fact does "prepend" operation.
> >>
> >> To append to a circular list, you insert it *before* the first node.
> >> So what's wrong here?
> >
> > Yeap, it's definitely right. I was misunderstanding. :-(
> >
> >>
> >> >
> >> >         2. just the same as list_node_append(), kmod_list_append() which
> >> >         invokes the former just do "prepend" operation rather than "append".
> >>
> >> like I said, it's expected, since it's circular. kmod_list_append()
> >> expect you to pass the head of the list, so to append to the list you
> >> prepend to the first node, but you don't return it as the new head
> >> unless it's the first one - check the return code.
> >>
> >> >
> >> > I'd like to fix these internal APIs to do the operation suggested by its
> >> > name like
> >> >         1. drop list_node_append()
> >> >         2. call list_node_insert_after() to do "append" operation
> >> >         3. call list_mode_insert_before() to do "prepend" operation
> >> >
> >> > Since the list here is circular linked, so I think these changes should
> >> > not break things except the test cases.
> >> >
> >> > Any comments are appreciated.
> >>
> >> Are you analyzing the source code or are you seeing a real problem?
> >
> > Relax, no real issue found.
> 
> Good to know :-)
> 
> >
> >> It'd be nice to write a small test showing the problem - you can use
> >
> > So I think it's not necessary to add a dedicate test for list, the
> > others somehow use the list, like modinfo test.
> 
> On a side note about the current list implementation: one interesting
> thing to investigate is how much memory we waste on list nodes and how
> we could improve that. One possible answer is by using inlined nodes
> like kernel's.
> 
> In some places we use kmod_list very heavily like in depmod. Last time
> I checked I remember a great portion of the memory used just to store
> the list nodes. If you would like to improve this part, or at least
> profile it, it would be very nice :)

Add to my TODO list, but I'm not sure what the ETA is. :-)

--
Thanks,
Chengwei

> 
> 
> Lucas De Marchi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux