netch80: (Default)
[personal profile] netch80
Из Infiniband Architecture Specification:


When initially powered up or reset, the value of all counters contained in PortCounters on all ports of a node shall be set to zero. During operation, instead of overflowing, they shall stop at all ones. At any time, writing (Set) zero into a counter shall cause the counter to be reset to zero.


Это - остановка по достижению предела, сброс только в ноль, отсутствие атомарного чтения и сброса - сделано одинаково и для 32- и для 64-битных счётчиков, только предел разный.
Вопрос: кто может мне объяснить глубокий смысл такого решения?

Date: 2012-04-04 09:50 am (UTC)
From: [identity profile] netch80.livejournal.com
Кстати, вместо останова счётчика можно было бы сделать однобитовый флаг события перехода счётчика через 0, который ставится железом на каждом переходе (независимо от того, что в нём было) и сбрасывается софтом по явному указанию.

Date: 2012-04-04 10:20 am (UTC)
From: [identity profile] gul-kiev.livejournal.com
Да, я тоже подумал про overflow flag.
Это полумера, т.к. всё равно не даст возможности быть уверенным в том, что всё хорошо и ничего не потеряли, но с ним было бы точно лучше, чем останавливаться на uint_max.
А наиболее правильным было бы иметь и overflow flag, и атомарность чтения/обнуления. Либо overflow flag плюс возможность вычитания. Тогда в софте можно было бы следить за тем, чтобы флаг не взводился, потому что если он взвёлся, уже ни в чём нельзя быть уверенным.

Date: 2012-04-06 04:05 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Такой флаг уже есть — старший бит счётчика. Вот что сбросить только его нельзя — это недоработка.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 07:03 am
Powered by Dreamwidth Studios