<div dir="ltr">Nick,<div><br></div><div>The mailing list is not answered by ATM or Google search engine, where you can play around with any questions you like. </div><div>It takes so much efforts for a person to understand the questions, and reply to that. You need to respect the value of a reply and the value of time spent by REAL people.</div>
<div><br></div><div>Look at your first question, and after a long reply from GREG, you are asking a totally different question.</div><div><br></div><div><br></div><div>Thanks</div><div>Ashok</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Tue, Aug 19, 2014 at 10:53 AM, Nick Krause <span dir="ltr">&lt;<a href="mailto:xerofoify@gmail.com" target="_blank">xerofoify@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On Mon, Aug 18, 2014 at 7:01 PM, Greg Freemyer &lt;<a href="mailto:greg.freemyer@gmail.com">greg.freemyer@gmail.com</a>&gt; wrote:<br>
&gt; On Mon, Aug 18, 2014 at 4:20 PM, Nick Krause &lt;<a href="mailto:xerofoify@gmail.com">xerofoify@gmail.com</a>&gt; wrote:<br>
&gt;&gt; What are the advantages of the hashed linked list version over the<br>
&gt;&gt; standard one and does it<br>
&gt;&gt; increase the memory usage and overhead of the linked list more if I<br>
&gt;&gt; use a hashed version?<br>
&gt;<br>
&gt; Seriously?  Do you know what a hash is?<br>
&gt;<br>
&gt; A hash is a well-defined many to one algorithm.<br>
&gt;<br>
&gt; If I have a universe of a million items that hash down to 100 unique<br>
&gt; hashes, then I can group those million items by hash and have 100<br>
&gt; groups of roughly 10,000 items each.<br>
&gt;<br>
&gt; The better the hashing algorithm versus my original universe of 1<br>
&gt; million items, the more even the distribution.<br>
&gt;<br>
&gt; Now that I have 100 segregated groups I can build an array of 100<br>
&gt; linked lists all maintained separately.<br>
&gt;<br>
&gt; Thus:<br>
&gt;<br>
&gt; hash_index = my_hash(item)<br>
&gt;<br>
&gt; add_item(linked_list[hash_item], item) is how I add my item to the<br>
&gt; hashed linked list.<br>
&gt;<br>
&gt; is_in_list(linked_list[hash_item], item) is how I check to see if my<br>
&gt; item is already in the list.<br>
&gt;<br>
&gt; So in my example I have to have 100 linked lists, but each list is on<br>
&gt; average 100x smaller than a simple linked list would be.<br>
&gt;<br>
&gt; Is adding an item to the hashed linked list faster?<br>
&gt;<br>
&gt; Absolutely not, I have to hash the item first then do a normal linked<br>
&gt; list insertion.  That will always be slower.<br>
&gt;<br>
&gt; Is finding the item faster?<br>
&gt;<br>
&gt; That is the whole point of the exercise.  The theory is you ONLY use a<br>
&gt; hashed linked list if the overhead of hashing the item is less than<br>
&gt; the amount of time saved by traversing shorter lists when you search.<br>
&gt;<br>
&gt; It is the job of the programmer to make the determination if a hashed<br>
&gt; list is a better choice or not on a case by case basis.  It depends on<br>
&gt; the length of the list without breaking it into pieces and how well<br>
&gt; the hash algorithm can do at generating roughly similar segregated<br>
&gt; groups.<br>
&gt;<br>
&gt; For the size question, write yourself a userspace app and test it.<br>
&gt; Obviously that is more work than asking here, but it is ASSUMED you<br>
&gt; are doing research on your OWN before you post questions here.<br>
&gt;<br>
&gt; fyi: this question has little to do with the linux kernel.  It is part<br>
&gt; of what people mean when they say you need to go learn c before you<br>
&gt; start on the kernel.  Using linked lists and hashed linked lists is<br>
&gt; stuff you can fully explore in userspace.<br>
&gt;<br>
&gt; Greg<br>
</div></div>No I known what the advantages are for user space was wondering if<br>
there were any issues that differ in<br>
kernel space.<br>
<span class="HOEnZb"><font color="#888888">Nick<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</div></div></blockquote></div><br></div>