about summary refs log tree commit diff
path: root/pkgs/tools/filesystems/squashfs/0003-remove-frag-deflator-thread.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/filesystems/squashfs/0003-remove-frag-deflator-thread.patch')
-rw-r--r--pkgs/tools/filesystems/squashfs/0003-remove-frag-deflator-thread.patch220
1 files changed, 0 insertions, 220 deletions
diff --git a/pkgs/tools/filesystems/squashfs/0003-remove-frag-deflator-thread.patch b/pkgs/tools/filesystems/squashfs/0003-remove-frag-deflator-thread.patch
deleted file mode 100644
index 4be4b96369a8..000000000000
--- a/pkgs/tools/filesystems/squashfs/0003-remove-frag-deflator-thread.patch
+++ /dev/null
@@ -1,220 +0,0 @@
-From afc0c76a170bd17cbd29bbec6ae6d2227e398570 Mon Sep 17 00:00:00 2001
-From: Alexander Couzens <lynxis@fe80.eu>
-Date: Fri, 13 Jan 2017 22:00:37 +0100
-Subject: [PATCH] remove frag_deflator_thread
-
-frag_deflator_thread compress fragments.
-Replace the deflator_thread with a function and
-use the function instead of the to_frag queue.
----
- squashfs-tools/info.c       |  5 ---
- squashfs-tools/mksquashfs.c | 76 +++++++++++++------------------------
- squashfs-tools/mksquashfs.h |  2 +-
- squashfs-tools/restore.c    | 15 +-------
- 4 files changed, 30 insertions(+), 68 deletions(-)
-
-diff --git a/squashfs-tools/info.c b/squashfs-tools/info.c
-index 7968c77..028d578 100644
---- a/squashfs-tools/info.c
-+++ b/squashfs-tools/info.c
-@@ -96,11 +96,6 @@ void dump_state()
- 	printf("compressed block queue (deflate thread(s) -> main thread)\n");
- 	dump_seq_queue(to_main, 0);
- 
--	printf("uncompressed packed fragment queue (main thread -> fragment"
--						" deflate thread(s))\n");
--	dump_queue(to_frag);
--
--
- 	printf("locked frag queue (compressed frags waiting while multi-block"
- 						" file is written)\n");
- 	dump_queue(locked_fragment);
-diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
-index cf48e40..cacf14c 100644
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -270,10 +270,10 @@ unsigned int sid_count = 0, suid_count = 0, sguid_count = 0;
- struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
- struct cache *bwriter_buffer, *fwriter_buffer;
- struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
--	*to_frag, *locked_fragment, *to_process_frag;
-+	*locked_fragment, *to_process_frag;
- struct seq_queue *to_main;
- pthread_t reader_thread, writer_thread, main_thread;
--pthread_t *deflator_thread, *frag_deflator_thread, *frag_thread;
-+pthread_t *deflator_thread, *frag_thread;
- pthread_t *restore_thread = NULL;
- pthread_mutex_t	fragment_mutex = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_t	pos_mutex = PTHREAD_MUTEX_INITIALIZER;
-@@ -323,7 +323,7 @@ struct dir_info *scan1_opendir(char *pathname, char *subpath, int depth);
- void write_filesystem_tables(struct squashfs_super_block *sBlk, int nopad);
- unsigned short get_checksum_mem(char *buff, int bytes);
- void check_usable_phys_mem(int total_mem);
--
-+void frag_deflator(struct file_buffer *file_buffer);
- 
- void prep_exit()
- {
-@@ -1540,7 +1540,7 @@ void write_fragment(struct file_buffer *fragment)
- 	pthread_mutex_lock(&fragment_mutex);
- 	fragment_table[fragment->block].unused = 0;
- 	fragments_outstanding ++;
--	queue_put(to_frag, fragment);
-+	frag_deflator(fragment);
- 	pthread_cleanup_pop(1);
- }
- 
-@@ -2412,51 +2412,34 @@ void *deflator(void *arg)
- }
- 
- 
--void *frag_deflator(void *arg)
-+void frag_deflator(struct file_buffer *file_buffer)
- {
--	void *stream = NULL;
--	int res;
- 
--	res = compressor_init(comp, &stream, block_size, 1);
--	if(res)
--		BAD_ERROR("frag_deflator:: compressor_init failed\n");
--
--	pthread_cleanup_push((void *) pthread_mutex_unlock, &fragment_mutex);
--
--	while(1) {
--		int c_byte, compressed_size;
--		struct file_buffer *file_buffer = queue_get(to_frag);
--		struct file_buffer *write_buffer =
-+	int c_byte, compressed_size;
-+	struct file_buffer *write_buffer =
- 			cache_get(fwriter_buffer, file_buffer->block);
- 
--		c_byte = mangle2(stream, write_buffer->data, file_buffer->data,
--			file_buffer->size, block_size, noF, 1);
--		compressed_size = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
--		write_buffer->size = compressed_size;
--		pthread_mutex_lock(&fragment_mutex);
--		if(fragments_locked == FALSE) {
--			fragment_table[file_buffer->block].size = c_byte;
--			fragment_table[file_buffer->block].start_block = bytes;
--			write_buffer->block = bytes;
--			bytes += compressed_size;
--			fragments_outstanding --;
--			queue_put(to_writer, write_buffer);
--			pthread_mutex_unlock(&fragment_mutex);
--			TRACE("Writing fragment %lld, uncompressed size %d, "
--				"compressed size %d\n", file_buffer->block,
--				file_buffer->size, compressed_size);
--		} else {
--				add_pending_fragment(write_buffer, c_byte,
--					file_buffer->block);
--				pthread_mutex_unlock(&fragment_mutex);
--		}
--		cache_block_put(file_buffer);
-+	c_byte = mangle2(stream, write_buffer->data, file_buffer->data,
-+			 file_buffer->size, block_size, noF, 1);
-+	compressed_size = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
-+	write_buffer->size = compressed_size;
-+	if(fragments_locked == FALSE) {
-+		fragment_table[file_buffer->block].size = c_byte;
-+		fragment_table[file_buffer->block].start_block = bytes;
-+		write_buffer->block = bytes;
-+		bytes += compressed_size;
-+		fragments_outstanding --;
-+		queue_put(to_writer, write_buffer);
-+		TRACE("Writing fragment %lld, uncompressed size %d, "
-+		      "compressed size %d\n", file_buffer->block,
-+		      file_buffer->size, compressed_size);
-+	} else {
-+		add_pending_fragment(write_buffer, c_byte,
-+				     file_buffer->block);
- 	}
--
--	pthread_cleanup_pop(0);
-+	cache_block_put(file_buffer);
- }
- 
--
- struct file_buffer *get_file_buffer()
- {
- 	struct file_buffer *file_buffer = seq_queue_get(to_main);
-@@ -4257,19 +4240,17 @@ void initialise_threads(int readq, int fragq, int bwriteq, int fwriteq,
- 			multiply_overflow(processors * 3, sizeof(pthread_t)))
- 		BAD_ERROR("Processors too large\n");
- 
--	deflator_thread = malloc(processors * 3 * sizeof(pthread_t));
-+	deflator_thread = malloc(processors * 2 * sizeof(pthread_t));
- 	if(deflator_thread == NULL)
- 		MEM_ERROR();
- 
--	frag_deflator_thread = &deflator_thread[processors];
--	frag_thread = &frag_deflator_thread[processors];
-+	frag_thread = &deflator_thread[processors];
- 
- 	to_reader = queue_init(1);
- 	to_deflate = queue_init(reader_size);
- 	to_process_frag = queue_init(reader_size);
- 	to_writer = queue_init(bwriter_size + fwriter_size);
- 	from_writer = queue_init(1);
--	to_frag = queue_init(fragment_size);
- 	locked_fragment = queue_init(fragment_size);
- 	to_main = seq_queue_init();
- 	reader_buffer = cache_init(block_size, reader_size, 0, 0);
-@@ -4285,9 +4266,6 @@ void initialise_threads(int readq, int fragq, int bwriteq, int fwriteq,
- 	for(i = 0; i < processors; i++) {
- 		if(pthread_create(&deflator_thread[i], NULL, deflator, NULL))
- 			BAD_ERROR("Failed to create thread\n");
--		if(pthread_create(&frag_deflator_thread[i], NULL, frag_deflator,
--				NULL) != 0)
--			BAD_ERROR("Failed to create thread\n");
- 		if(pthread_create(&frag_thread[i], NULL, frag_thrd,
- 				(void *) destination_file) != 0)
- 			BAD_ERROR("Failed to create thread\n");
-diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h
-index 55708a3..dc5bde4 100644
---- a/squashfs-tools/mksquashfs.h
-+++ b/squashfs-tools/mksquashfs.h
-@@ -135,7 +135,7 @@ struct append_file {
- extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
- struct cache *bwriter_buffer, *fwriter_buffer;
- extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
--	*to_frag, *locked_fragment, *to_process_frag;
-+	*locked_fragment, *to_process_frag;
- extern struct append_file **file_mapping;
- extern struct seq_queue *to_main;
- extern pthread_mutex_t fragment_mutex, dup_mutex;
-diff --git a/squashfs-tools/restore.c b/squashfs-tools/restore.c
-index 5e336b3..a7aaf2e 100644
---- a/squashfs-tools/restore.c
-+++ b/squashfs-tools/restore.c
-@@ -47,8 +47,8 @@
- #define TRUE 1
- 
- extern pthread_t reader_thread, writer_thread, main_thread;
--extern pthread_t *deflator_thread, *frag_deflator_thread, *frag_thread;
--extern struct queue *to_deflate, *to_writer, *to_frag, *to_process_frag;
-+extern pthread_t *deflator_thread, *frag_thread;
-+extern struct queue *to_deflate, *to_writer, *to_process_frag;
- extern struct seq_queue *to_main;
- extern void restorefs();
- extern int processors;
-@@ -120,17 +120,6 @@ void *restore_thrd(void *arg)
- 		pthread_cancel(main_thread);
- 		pthread_join(main_thread, NULL);
- 
--		/* then flush the main thread to fragment deflator thread(s)
--		 * queue.  The fragment deflator thread(s) will idle
--		 */
--		queue_flush(to_frag);
--
--		/* now kill the fragment deflator thread(s) */
--		for(i = 0; i < processors; i++)
--			pthread_cancel(frag_deflator_thread[i]);
--		for(i = 0; i < processors; i++)
--			pthread_join(frag_deflator_thread[i], NULL);
--
- 		/*
- 		 * then flush the main thread/fragment deflator thread(s)
- 		 * to writer thread queue.  The writer thread will idle
--- 
-2.17.0
-