From 2a62b1e514b6b2e1a6a94cad43c427abe1c7e4c1 Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Wed, 12 Jun 2024 13:32:42 +0200 Subject: [PATCH] copy: remove some dead code --- kernel/mars_copy.c | 76 ---------------------------------------------- 1 file changed, 76 deletions(-) diff --git a/kernel/mars_copy.c b/kernel/mars_copy.c index 47beab69..e346d984 100644 --- a/kernel/mars_copy.c +++ b/kernel/mars_copy.c @@ -128,42 +128,6 @@ void clear_clash(struct copy_brick *brick) cmpxchg(&brick->clash, true, false); } -/* Current semantics (NOT REALLY IMPLEMENTED because OUTPUT IS NOT IN USE) - * - * All writes from the OUTPUT are always going to the original input A. They are _not_ - * replicated to B. - * - * In order to get B really uptodate, you have to replay the right - * transaction logs there (at the right time). - * [If you had no writes on A at all during the copy, of course - * this is not necessary] - * - * When utilize_mode is on, reads can utilize the already copied - * region from B, but only as long as this region has not been - * invalidated by writes (indicated by low_dirty). - * - * TODO: implement replicated writes, together with some transaction - * replay logic applying the transaction logs _only_ after - * crashes during inconsistency caused by partial replication of writes. - */ - -static -struct copy_input *_determine_input(struct copy_brick *brick, struct mref_object *mref) -{ - struct copy_mref_aspect *mref_a; - - mref_a = copy_mref_get_aspect(brick, mref); - if (unlikely(!mref_a)) { - MARS_FAT("cannot get own aspect from %p %p\n", - brick, mref); - return NULL; - } - /* TODO: implement the new logic, for the envisioned - * new use cases. - */ - return mref_a->input; -} - #define GET_INDEX(pos) (((__u64)(pos) / COPY_CHUNK) % NR_COPY_REQUESTS) #define GET_OFFSET(pos) ((__u64)(pos) % COPY_CHUNK) @@ -1198,43 +1162,6 @@ static int copy_get_info(struct copy_output *output, struct mars_info *info) return GENERIC_INPUT_CALL(input, mars_get_info, info); } -static int copy_ref_get(struct copy_output *output, struct mref_object *mref) -{ - struct copy_input *input; - int status; - - input = _determine_input(output->brick, mref); - - status = GENERIC_INPUT_CALL(input, mref_get, mref); - if (status >= 0) { - atomic_inc(&output->brick->io_flight); - } - return status; -} - -static void copy_ref_put(struct copy_output *output, struct mref_object *mref) -{ - struct copy_brick *brick = output->brick; - struct copy_input *input; - - input = _determine_input(brick, mref); - - GENERIC_INPUT_CALL_VOID(input, mref_put, mref); - if (atomic_dec_and_test(&brick->io_flight)) { - WRITE_ONCE(brick->trigger, true); - brick_wake_smp(&brick->event); - } -} - -static void copy_ref_io(struct copy_output *output, struct mref_object *mref) -{ - struct copy_input *input; - - input = _determine_input(output->brick, mref); - - GENERIC_INPUT_CALL_VOID(input, mref_io, mref); -} - static int copy_switch(struct copy_brick *brick) { static int version = 0; @@ -1456,9 +1383,6 @@ static struct copy_brick_ops copy_brick_ops = { static struct copy_output_ops copy_output_ops = { .mars_get_info = copy_get_info, - .mref_get = copy_ref_get, - .mref_put = copy_ref_put, - .mref_io = copy_ref_io, }; const struct copy_input_type copy_input_type = {