Comments (5)
That's one implementation approach, a common one. Some chip might support partial reconfiguration without hitting the data plane, that might be another approach.
from sai.
@lguohan @sonicyao1985 how do you control or quantify this partial reconfiguration ? should we or do we want to explicitly mention the expected behavior for this case .
from sai.
@AnbalaganNatchimuthu Please help me understand following from the warmboot proposal:
- It seems the boot type flag is sent as part of the shutdown_switch API and not from the initialize_switch API. So is adapter supposed to remember this parameter. Typically this is system/platform/application code that should be reading the bootflags. The bootflags are set during shutdown or even as part of signal handler for a segfault etc. I think it should be passed to SAI from initialize call.
- initiate_switch in the doc should be replaced by initialize_switch
- Following description is not clear and the comments contradict
Which of the two comments is valid. In the second comment. Is it only related to init failure, do you mean once the Host Adapter gets a init failure it should wait for this interval.
/* READ_ONLY */ /* Minimum interval of time required by SAI for planned restart [sai_uint32_t] in milliseconds. Will be 0 for SAI_RESTART_TYPE_NONE */ /* The Host Adapter will have to wait for this minimum interval of time before it decides to bring down SAI due to init failure. */ SAI_SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL,
- Please let me know why we have 2 files, shouldnt it be a common file for maintaining and recovering state? Rather in a more generic sense the NV could be something that could be completely abstracted from the user. The file format etc might be very different for each of the SDK implementation. In most ideal case the read/write/open etc should be abstracted from a OS abstraction layer.
/* The file to recover SAI/NPU state from */ #define SAI_KEY_WARM_BOOT_READ_FILE “SAI_WARM_BOOT_READ_FILE” /* The file to write SAI/NPU state to */ #define SAI_KEY_WARM_BOOT_WRITE_FILE “SAI_WARM_BOOT_WRITE_FILE”
- In the following code
Why is this coupled with the shutdown alone. The state sync is ongoing activity.
/* The NV storage is full. (rv for shutdown_switch()) */ SAI_STATUS_NV_STORAGE_FULL SAI_STATUS_CODE(0x00000015L)
from sai.
Dell - Internal Use - Confidential
Hi,
-
The shutdown_switch API is not taking the boot_type flag. The shutdown_switch API is used to trigger a planned restart. Once this trigger reaches SAI, SAI would dump its contents to NV store and the also trigger the NPU to dump its contents to NV Store and enter restart. The bootflags indicating the type of boot (either warm or cold) are read from the key value pair before calling the initialize_switch API.
-
I will correct the document for initiate_switch
-
The minimum restart interval is the time required by SAI and NPU to store its contents to the NV store on receiving a trigger to do a restart from the Host Adapter. If time taken exceeds this minimum interval then the Host Adapter can take a decision on bringing down SAI. I will update the document on this section.
-
Regarding the usage of files for storage, it was decided in the OCP technical committee to go with files for now and abstract it later with function pointers. Shankara and Gouhan can provide more details on this.
-
The state sync can be either one time or periodic based on the restart type the NPU supports. I will update the document.
Thanks
Anbalagan
From: Atit Jain [mailto:[email protected]]
Sent: Friday, January 29, 2016 4:44 PM
To: opencomputeproject/SAI [email protected]
Cc: Natchimuth, Anbalagan [email protected]
Subject: Re: [SAI] About warmboot (#53)
@AnbalaganNatchimuthuhttps://github.com/AnbalaganNatchimuthu Please help me understand following from the warmboot proposal:
-
It seems the boot type flag is sent as part of the shutdown_switch API and not from the initialize_switch API. So is adapter supposed to remember this parameter. Typically this is system/platform/application code that should be reading the bootflags. The bootflags are set during shutdown or even as part of signal handler for a segfault etc. I think it should be passed to SAI from initialize call.
-
initiate_switch in the doc should be replaced by initialize_switch
-
Following description is not clear and the comments contradict
-
/* READ_ONLY */
-
/* Minimum interval of time required by SAI for planned restart [sai_uint32_t]
-
in milliseconds. Will be 0 for SAI_RESTART_TYPE_NONE */
-
/* The Host Adapter will have to wait for this minimum interval of time before it decides
-
to bring down SAI due to init failure. */
10.SAI_SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL,
Which of the two comments is valid. In the second comment. Is it only related to init failure, do you mean once the Host Adapter gets a init failure it should wait for this interval.
-
Please let me know why we have 2 files, shouldnt it be a common file for maintaining and recovering state? Rather in a more generic sense the NV could be something that could be completely abstracted from the user. The file format etc might be very different for each of the SDK implementation. In most ideal case the read/write/open etc should be abstracted from a OS abstraction layer.
-
/* The file to recover SAI/NPU state from */
14.#define SAI_KEY_WARM_BOOT_READ_FILE “SAI_WARM_BOOT_READ_FILE”
15./* The file to write SAI/NPU state to */
16.#define SAI_KEY_WARM_BOOT_WRITE_FILE “SAI_WARM_BOOT_WRITE_FILE”
-
In the following code
19./* The NV storage is full. (rv for shutdown_switch()) */
20.SAI_STATUS_NV_STORAGE_FULL SAI_STATUS_CODE(0x00000015L)
Why is this coupled with the shutdown alone. The state sync is ongoing activity.
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/53#issuecomment-176698172.
from sai.
Why not pass the boot-flag things from the system side (infrastructure and other things around the host adapter) to the SAI swith init API, this makes things simpler for various implementations.
from sai.
Related Issues (20)
- SAI_API_MPLS not supported for Mellanox/Nvidia Spectrum chips
- Possible SAI API struct *_api_t mismatch
- Question: Google Proto Buff for SAI-RPC available? HOT 10
- Correct version in saithrift package HOT 3
- Too many saithrift servers in SAI repo HOT 18
- buffer overflow vulnerability in sai_serialize_attribute function HOT 3
- Unused code? HOT 3
- Some generated metadata items are not binary backward compatible HOT 1
- Query: Shared threshold mode for the buffer profile HOT 5
- wrong size of sai_acl_capability_t HOT 3
- outside the range of type ‘sai_object_type_t’ HOT 8
- WEIGHT is valid for SAI_SCHEDULING_TYPE_WRR as well
- How to generate test report for SAI PTF test case
- test
- Clarification on Conflicting Actions Resolution in ACL Table HOT 5
- [information request] do we have a way to set the type of hash algo?
- Get vendor specific version information from SAI HOT 5
- saithrift build issue for bookworm HOT 1
- GCC 12 error in saimetadatatest.c HOT 1
- checkenumlock.sh fails with SAI v1.11 HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sai.