Changeset bc3d695 in mainline for uspace/srv/bd/hr/var.h


Ignore:
Timestamp:
2025-01-05T18:22:28Z (4 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
7bf29e5
Parents:
40be7eb
Message:

hr: RAID0 parallelization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/bd/hr/var.h

    r40be7eb rbc3d695  
    11/*
    2  * Copyright (c) 2024 Miroslav Cimerman
     2 * Copyright (c) 2025 Miroslav Cimerman
    33 * All rights reserved.
    44 *
     
    4343#include <hr.h>
    4444
     45#include "fge.h"
     46
    4547#define NAME "hr"
    4648
     
    6062        bd_srvs_t hr_bds;
    6163
    62         link_t lvolumes;
     64        link_t lvolumes; /* protected by static hr_volumes_lock in hr.c */
     65
     66        /*
     67         * XXX: will be gone after all paralelization, but still used
     68         * in yet-unparallelized levels
     69         */
    6370        fibril_mutex_t lock;
    6471
     
    6673        fibril_mutex_t range_lock_list_lock;
    6774
     75        hr_fpool_t *fge;
     76
     77        /* after assembly, these are invariant */
    6878        size_t extent_no;
    69         hr_extent_t extents[HR_MAX_EXTENTS];
    70 
    71         size_t hotspare_no;
    72         hr_extent_t hotspares[HR_MAX_HOTSPARES];
    73 
    7479        size_t bsize;
    7580        uint64_t nblocks;
     
    7782        uint64_t data_offset; /* in blocks */
    7883        uint32_t strip_size;
     84        hr_level_t level;
     85        uint8_t layout; /* RAID Level Qualifier */
     86        service_id_t svc_id;
     87        char devname[HR_DEVNAME_LEN];
     88
     89        hr_extent_t extents[HR_MAX_EXTENTS];
     90        size_t hotspare_no;
     91        hr_extent_t hotspares[HR_MAX_HOTSPARES];
     92
     93        /* protects ordering (hr_extent_t.svc_id, hotspares) */
     94        fibril_rwlock_t extents_lock;
     95
     96        /* protects states (hr_extent_t.status, hr_vol_status_t.status) */
     97        fibril_rwlock_t states_lock;
     98
     99        /* for halting IO requests when a REBUILD start waits */
     100        bool halt_please;
     101        fibril_mutex_t halt_lock;
    79102
    80103        uint64_t rebuild_blk;
    81 
    82104        uint64_t counter; /* metadata syncing */
    83 
    84         service_id_t svc_id;
    85105        hr_vol_status_t status;
    86         hr_level_t level;
    87         uint8_t layout; /* RAID Level Qualifier */
    88         char devname[HR_DEVNAME_LEN];
    89106} hr_volume_t;
    90107
Note: See TracChangeset for help on using the changeset viewer.