-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
issue: 3613619 Avoid posting RX WQEs for Neigh ring #78
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -61,11 +61,10 @@ class ring_alloc_logic_attr { | |
ring_alloc_logic_attr(const ring_alloc_logic_attr &other); | ||
void set_ring_alloc_logic(ring_logic_t logic); | ||
void set_user_id_key(uint64_t user_id_key); | ||
void set_use_locks(bool use_locks); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Don't remove it, new storage API uses it. |
||
const std::string to_str() const; | ||
inline ring_logic_t get_ring_alloc_logic() { return m_ring_alloc_logic; } | ||
inline uint64_t get_user_id_key() { return m_user_id_key; } | ||
inline bool get_use_locks() { return m_use_locks; } | ||
inline ring_logic_t get_ring_alloc_logic() const { return m_ring_alloc_logic; } | ||
inline uint64_t get_user_id_key() const { return m_user_id_key; } | ||
inline bool get_use_locks() const { return m_use_locks; } | ||
|
||
bool operator==(const ring_alloc_logic_attr &other) const | ||
{ | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -270,7 +270,7 @@ typedef enum { | |
RING_LOGIC_PER_THREAD = 20, //!< RING_LOGIC_PER_THREAD | ||
RING_LOGIC_PER_CORE = 30, //!< RING_LOGIC_PER_CORE | ||
RING_LOGIC_PER_CORE_ATTACH_THREADS = 31, //!< RING_LOGIC_PER_CORE_ATTACH_THREADS | ||
RING_LOGIC_PER_OBJECT = 32, //!< RING_LOGIC_PER_OBJECT | ||
RING_LOGIC_NEIGH = 32, //!< RING_LOGIC_NEIGH | ||
RING_LOGIC_ISOLATE = 33, //!< RING_LOGIC_ISOLATE | ||
RING_LOGIC_LAST //!< RING_LOGIC_LAST | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [suggestion] enum {
...
RING_LOGIC_PER_CORE_ATTACH_THREADS = 31,
RING_LOGIC_LAST = 100
}; ring_allocation_logic.h: /* Internal ring allocation logic which is hidden from user. */
enum {
RING_LOGIC_NEIGH = RING_LOGIC_LAST + 1,
RING_LOGIC_ISOLATE,
}; ring_allocation_logic.cpp: bool is_logic_support_migration()
{
...
m_res_key.get_ring_alloc_logic() < **RING_LOGIC_LAST**
} There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am not sure about this change. It will create confusing conversions between ring_logic_t and ring_logic_public_t. just for extra_api.h usage. The negative of this approach is that we have kind of duplicate definitions. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is extra API and will be replaced by storage api with the groups. Depending on further steps, we may even remove all the obsolete extra API. So lets keep it as is and improve once we do cleanup. |
||
} ring_logic_t; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be better to make decision on dummy attribute in the constructor instead of storing it (lets say pass the information about dummy or number of buffers to
confiure_rq()
). If the RQ is really dummy, it won't be used and won't trigger any methods to post new buffers to the RQ.If this cannot be done in context of constructor, then leave it in current state.