<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/util, branch v1.1.2</title>
<subtitle>A new set of tools and libraries for working with SquashFS images</subtitle>
<id>https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.1.2</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.1.2'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2021-06-25T13:12:41+00:00</updated>
<entry>
<title>libutil: cleanup alignment trickery in mempool</title>
<updated>2021-06-25T13:12:41+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-06-25T12:14:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=0880db76afe85391430c547a67bad54b655a66e1'/>
<id>urn:sha1:0880db76afe85391430c547a67bad54b655a66e1</id>
<content type='text'>
 - Store the return value of the page allocation directly into the
   pool variable instead of an intermediate unsigned char pointer.
 - Make the blob[] array the same type as the bitmap, this saves us
   manual alignment trickery.
 - Cleanup the pointer arithmetic, let the compiler do the
   sizeof() multiplication.
 - Use uintptr_t for the manual alignment of the data pointer, so we
   don't run into signdness problems there.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Port the pool allocator to Windows</title>
<updated>2021-03-24T13:05:18+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-24T11:11:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=930eb71b8e2e1cbd4a6e9fd50a5253e44b79c2b1'/>
<id>urn:sha1:930eb71b8e2e1cbd4a6e9fd50a5253e44b79c2b1</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Threadpool: pre-emtively dequeue items after enqueing</title>
<updated>2021-03-22T20:09:54+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-22T19:59:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=13c804062e9acc7f74850477679265e19704e65a'/>
<id>urn:sha1:13c804062e9acc7f74850477679265e19704e65a</id>
<content type='text'>
When we already hold the mutex, try to pre-emtively dequeue items into
a "safe queue". When actually asked to dequeue, take blocks from there
first and avoid having to enter the critical section if possible.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup the block processor file structure</title>
<updated>2021-03-22T14:26:47+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-22T10:30:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=5aa0f30173ecf3b6538b9136cb4783fc19266288'/>
<id>urn:sha1:5aa0f30173ecf3b6538b9136cb4783fc19266288</id>
<content type='text'>
A cleaner separation between common code, frontend code and backend
code is made.

The "is this byte blob zero" function is moved out to libutil (with
test case and everything) with a more optimized implementation.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Rename thread pool serial implementation data structure</title>
<updated>2021-03-21T16:40:07+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-21T16:40:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=504cdc0b22406bd3c28b16c69deaaba7be104923'/>
<id>urn:sha1:504cdc0b22406bd3c28b16c69deaaba7be104923</id>
<content type='text'>
Hopeing that coverity can now tell the two appart.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add a thread pool implementation to libutil</title>
<updated>2021-03-21T16:29:18+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-20T15:46:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=a18f724aa3bf57aeed285b5f61eca4a0ba891c21'/>
<id>urn:sha1:a18f724aa3bf57aeed285b5f61eca4a0ba891c21</id>
<content type='text'>
The thread pool enforces ordering of items during dequeue similar
to the already existing implementation in libsqfs. The idea is to
eventually pull this functionality out of the block processor and
turn it into a cleaner, separately tested module.

The thread pool is implemented as an abstract interface, so we can
have multiple implementations around, including the serial fallback
implementation which we can then *always* test, irregardless of the
compile config and run through static analysis as well.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Force 64 bit alignment of blocks managed by the pool allocator</title>
<updated>2021-03-21T16:29:18+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-21T16:28:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=977aa1d0d29b5b48b31279d7709a7209001ee309'/>
<id>urn:sha1:977aa1d0d29b5b48b31279d7709a7209001ee309</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Optionally use a pool allocator for rb-tree nodes</title>
<updated>2021-03-07T17:15:50+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-07T17:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=723019f727ce53b392389bdadcc1701ae47e6a14'/>
<id>urn:sha1:723019f727ce53b392389bdadcc1701ae47e6a14</id>
<content type='text'>
This commit restructures the rbtree code to optionally use a pool
allocator for the nodes. The option is made depenend on the presence
of a pre-processor flag.

To the configure script is added an option to enable/disable the use
of custom allocators. It makes sense to still allow the malloc/free
based routes for better ASAN based instrumentation.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Implement a custom memory pool allocator</title>
<updated>2021-03-07T17:05:41+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-07T17:05:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=8f79a36a592c796c19037a2513c6fc7098698dee'/>
<id>urn:sha1:8f79a36a592c796c19037a2513c6fc7098698dee</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Rewrite the str_table to internally use the more opimized hash_table</title>
<updated>2021-03-07T00:18:03+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-07T00:14:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=257a5737d708b706be29526050f61ded9793d0ab'/>
<id>urn:sha1:257a5737d708b706be29526050f61ded9793d0ab</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
