pcommit | Git commit message handler | DevOps library
kandi X-RAY | pcommit Summary
kandi X-RAY | pcommit Summary
I use this script in coding time to have structured Git commit messages and a nice changelog (history of project changes). This script does two things; commit changes, generate changelog file.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Main entry point
- Save list of commits
- Parse list of commits
- Get the list of commit hashes
- Run the given command
- Handle the commits
pcommit Key Features
pcommit Examples and Code Snippets
Community Discussions
Trending Discussions on pcommit
QUESTION
In the Intel ISA extension manual the description for pcommit
is a bit cryptic:
The
PCOMMIT
instruction causes certain store-to-memory operations to persistent memory ranges to become persistent (power failure protected). Specifically,PCOMMIT
applies to those stores that have been accepted to memory.
[...]
IfPCOMMIT
is executed after a store to a persistent memory range is accepted to memory, the store becomes persistent when thePCOMMIT
becomes globally visible.
[...]
The data in a store to persistent memory becomes persistent (durable) only after it has either been written to the targeted non-volatile device, or to some intermediate power-fail protected storage/buffer.
It names concepts like persistent memory ranges, stores accepted to memory, stores becoming persistent and non-volatile device1.
What is the exact context?
1 This cannot be the classical NV devices like the NOR Flash ROM or NVMe devices (read: new SSDs) as they are behind a variable number of bridges, including subtractive decoding ones, that the CPU has no control over.
...ANSWER
Answered 2017-Jan-26 at 16:22First of all pcommit
has been deprecated before even shipping to an actual CPU.
Most of this answer is based on the content of the link above.
Intel, in conjunction with Micron, developed a new form of Non-volatile memory (NVM) called 3D XPoint (from its internal structure).
An actual implementation, as a disk cache, is already available and Intel started to prepare for a wider adoption of its NVM technology a while ago.
Particularly Intel imagined that some of the DIMMs could contain a portion made with 3D XPoint technology and thus constitute a non-volatile device.
This would make one or more memory ranges persistent, the collection of these persistent ranges is called the persistent domain.
One of the main features of the persistent domain is its ability to be power-fail safe.
When a store is made it goes through:
- The store buffer.
The store is completed/visible locally, but not globally.
The store buffer can be flushed with different instructions (e.g.sfence
). - The cache hierarchy.
The store is globally visible (the cache coherence protocol ensure this).
The cache can be flushed with different instructions (e.g.clflush
,clflushopt
,clwb
, et al). - The memory controller Write Pending Queue (WPQ).
The store is accepted to memory but it is not written to the DIMMs yet.
The WPQ can be flushed through specific PCIe configuration registers of the memory controller or withpcommit
. - The memory.
The store is committed/written in the memory.
At what point of the data path above the store is in the persistent domain and thus will not be lost in case of power failure?
Some memory controller has a feature called Asynchronous DRAM Refresh that ensures that even in the case of power-loss the WPQ is flushed correctly (thanks to a battery for example).
For these platforms, the persistent domain starts at the WPQ.
Intel, however, was concerned that not all platforms would have had the ADR feature and created the pcommit
instruction as a way to be sure that stores entered the persistence domain (pcommit
is executable in user mode).
This is how a store was intended to be made persistent
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install pcommit
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page