From 18486cf8d7c2bd54e51fe86016ef0be95320ded2 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 8 Mar 2006 00:55:56 +0000 Subject: [PATCH] * src/buffer.c (record_buffer_aligned): New var. (init_buffer): Use it to ensure that the buffer is aligned. This doesn't result in any measurable performance improvement on my host (Debian GNU/Linux 3.1 stable, with default block size), but I assume it does help on some hosts. --- ChangeLog | 6 ++++++ src/buffer.c | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index fc3830c..83e2ac1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2006-03-07 Paul Eggert + * src/buffer.c (record_buffer_aligned): New var. + (init_buffer): Use it to ensure that the buffer is aligned. + This doesn't result in any measurable performance improvement + on my host (Debian GNU/Linux 3.1 stable, with default block size), + but I assume it does help on some hosts. + * lib/.cvsignore: Add unistd_.h. Sort. 2006-03-04 Sergey Poznyakoff diff --git a/src/buffer.c b/src/buffer.c index c0cedc3..a6daf3c 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -44,6 +44,7 @@ static tarlong prev_written; /* bytes written on previous volumes */ static tarlong bytes_written; /* bytes written on this volume */ static void *record_buffer[2]; /* allocated memory */ +union block *record_buffer_aligned[2]; static int record_index; /* FIXME: The following variables should ideally be static to this @@ -369,10 +370,11 @@ xclose (int fd) static void init_buffer () { - if (!record_buffer[record_index]) - page_aligned_alloc (&record_buffer[record_index], record_size); + if (! record_buffer_aligned[record_index]) + record_buffer_aligned[record_index] = + page_aligned_alloc (&record_buffer[record_index], record_size); - record_start = record_buffer[record_index]; + record_start = record_buffer_aligned[record_index]; current_block = record_start; record_end = record_start + blocking_factor; } -- 2.45.2