Motr  M0
m0_cm_cp_pump Struct Reference

#include <pump.h>

Collaboration diagram for m0_cm_cp_pump:
Collaboration graph

Data Fields

struct m0_fom p_fom
 
struct m0_fom_timeout p_timeout
 
struct m0_cm_cpp_cp
 
uint64_t p_magix
 
struct m0_clink p_complete
 
struct m0_sm_ast p_wakeup
 

Detailed Description

Represents copy packet pump FOM. New copy packets are created in context of cm_cp_pump::p_fom. The pump FOM (cm_cp_pump::p_fom) nicely resolves the issues with creation of new copy packets and configuring them using m0_cm_data_next(), which may block. The pump FOM is created when copy machine operation starts and finalised when copy machine operation is complete. The pump FOM goes to sleep when no more copy packets can be created (buffer pool is exhausted). When a copy packet FOM terminates and frees its buffer in the pool, it wakes up the pump FOM (using m0_cm_sw_fill()) to create more copy packets.

Definition at line 49 of file pump.h.

Field Documentation

◆ p_complete

struct m0_clink p_complete

Definition at line 62 of file pump.h.

◆ p_cp

struct m0_cm_cp* p_cp

Every newly allocate Copy packet in CPP_ALLOC phase is saved for the further references, until the CPP_DATA_NEXT phase is completed for the copy packet. Pump FOM does not free this allocated copy packet, it is freed as part of copy packet FOM finalisation.

Definition at line 60 of file pump.h.

◆ p_fom

struct m0_fom p_fom

pump FOM.

Definition at line 51 of file pump.h.

◆ p_magix

uint64_t p_magix

Definition at line 61 of file pump.h.

◆ p_timeout

struct m0_fom_timeout p_timeout

Definition at line 53 of file pump.h.

◆ p_wakeup

struct m0_sm_ast p_wakeup

Definition at line 63 of file pump.h.


The documentation for this struct was generated from the following file: