Skip to content

Commit

Permalink
Version 8.2.0.18
Browse files Browse the repository at this point in the history
- Fixed a race handling timeouts of dedupe requests.
  • Loading branch information
corwin committed Aug 22, 2022
1 parent 127a993 commit 6077a12
Show file tree
Hide file tree
Showing 30 changed files with 2,028 additions and 1,988 deletions.
4 changes: 2 additions & 2 deletions kvdo.spec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
%define spec_release 1
%define kmod_name kvdo
%define kmod_driver_version 8.2.0.2
%define kmod_driver_version 8.2.0.18
%define kmod_rpm_release %{spec_release}
%define kmod_kernel_version 3.10.0-693.el7

Expand Down Expand Up @@ -94,5 +94,5 @@ rm -rf $RPM_BUILD_ROOT
%{_usr}/src/%{kmod_name}-%{version}

%changelog
* Sun Jul 17 2022 - Red Hat VDO Team <[email protected]> - 8.2.0.2-1
* Thu Aug 18 2022 - Red Hat VDO Team <[email protected]> - 8.2.0.18-1
- See https://github.com/dm-vdo/kvdo.git
2 changes: 1 addition & 1 deletion vdo/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VDO_VERSION = 8.2.0.2
VDO_VERSION = 8.2.0.18

SOURCES = $(notdir $(wildcard $(src)/*.c))
OBJECTS = $(SOURCES:%.c=%.o)
Expand Down
1 change: 0 additions & 1 deletion vdo/atomic-stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ struct atomic_bio_stats {
struct atomic_statistics {
atomic64_t bios_submitted;
atomic64_t bios_completed;
atomic64_t dedupe_context_busy;
atomic64_t flush_out;
atomic64_t invalid_advice_pbn_count;
atomic64_t no_space_error_count;
Expand Down
4 changes: 2 additions & 2 deletions vdo/completion.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ static const char *VDO_COMPLETION_TYPE_NAMES[] = {
"VDO_BLOCK_ALLOCATOR_COMPLETION",
"VDO_BLOCK_MAP_RECOVERY_COMPLETION",
"VDO_DATA_VIO_POOL_COMPLETION",
"VDO_DEDUPE_INDEX_COMPLETION",
"VDO_EXTENT_COMPLETION",
"VDO_FLUSH_COMPLETION",
"VDO_FLUSH_NOTIFICATION_COMPLETION",
"VDO_GENERATION_FLUSHED_COMPLETION",
"VDO_HASH_ZONE_COMPLETION",
"VDO_HASH_ZONES_COMPLETION",
"VDO_LOCK_COUNTER_COMPLETION",
"VDO_PAGE_COMPLETION",
"VDO_PARTITION_COPY_COMPLETION",
Expand Down
4 changes: 2 additions & 2 deletions vdo/completion.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ enum vdo_completion_type {
VDO_BLOCK_ALLOCATOR_COMPLETION,
VDO_BLOCK_MAP_RECOVERY_COMPLETION,
VDO_DATA_VIO_POOL_COMPLETION,
VDO_DEDUPE_INDEX_COMPLETION,
VDO_EXTENT_COMPLETION,
VDO_FLUSH_COMPLETION,
VDO_FLUSH_NOTIFICATION_COMPLETION,
VDO_GENERATION_FLUSHED_COMPLETION,
VDO_HASH_ZONE_COMPLETION,
VDO_HASH_ZONES_COMPLETION,
VDO_LOCK_COUNTER_COMPLETION,
VDO_PAGE_COMPLETION,
VDO_PARTITION_COPY_COMPLETION,
Expand Down
5 changes: 1 addition & 4 deletions vdo/data-vio-pool.c
Original file line number Diff line number Diff line change
Expand Up @@ -210,12 +210,9 @@ static void reset_data_vio(struct data_vio *data_vio, struct vdo *vdo)
* Zero out the fields which don't need to be preserved (i.e. which
* are not pointers to separately allocated objects).
*/
memset(data_vio, 0, offsetof(struct data_vio, dedupe_context));
memset(data_vio, 0, offsetof(struct data_vio, compression));
memset(&data_vio->compression, 0, offsetof(struct compression_state,
block));
memset(&data_vio->dedupe_context.pending_list, 0,
sizeof(struct list_head));

initialize_vio(vio,
bio,
1,
Expand Down
19 changes: 4 additions & 15 deletions vdo/data-vio.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include "completion.h"
#include "compressed-block.h"
#include "constants.h"
#include "hash-zone.h"
#include "dedupe.h"
#include "journal-point.h"
#include "logical-zone.h"
#include "physical-zone.h"
Expand Down Expand Up @@ -180,16 +180,6 @@ struct allocation {
bool wait_for_clean_slab;
};

/* Dedupe support */
struct dedupe_context {
struct uds_request uds_request;
struct list_head pending_list;
uint64_t submission_jiffies;
atomic_t request_state;
int status;
bool is_pending;
};

/*
* A vio for processing user data requests.
*/
Expand Down Expand Up @@ -304,14 +294,13 @@ struct data_vio {
*/
uint32_t remaining_discard;

struct dedupe_context *dedupe_context;

/*
* Fields beyond this point will not be reset when a pooled data_vio
* is reused.
*/

/* Dedupe */
struct dedupe_context dedupe_context;

/* All of the fields necessary for the compression path */
struct compression_state compression;

Expand Down Expand Up @@ -1035,7 +1024,7 @@ launch_data_vio_cpu_callback(struct data_vio *data_vio,
* set_data_vio_bio_zone_callback() - Set a callback as a bio zone operation.
* @data_vio: The data_vio for which to set the callback.
* @callback: The callback to set.
*
*
* This function assumes that the physical field of the data_vio's vio has
* already been set to the pbn to which I/O will be performed.
*/
Expand Down
Loading

0 comments on commit 6077a12

Please sign in to comment.