can expert andy rudoff help me understand how PMDK handling the block window error status?

59 views
Skip to first unread message

Wayne Gao

unread,
Jan 27, 2020, 8:20:29 PM1/27/20
to pmem

Hello Andy,

after I read the attached document. AEP and NVDIMM actually still have block windows and its command register and status register that reflect the HW error.
but in the PMDK dax mode, like pmemobj, I believe all these status register info will be bypassed. so how PMDK application handle the underlying HW error?





NVDIMM_Driver_Writers_Guide.pdf

Andy Rudoff

unread,
Jan 27, 2020, 9:09:27 PM1/27/20
to pmem
Hi Wayne,

Block Windows are a way to capture errors when using persistent memory as block storage.  We specified how they work (in the document you read) but Intel never shipped a product with Block Windows.  The Optane DC persistent memory (code named Apache Pass) does not have block windows implemented.  They turned out to be unnecessary since we added the appropriate error detection in the CPUs that support persistent memory.

When PMDK libraries like libpmemobj encounter memory errors, such as an uncorrectable, the error is reported to the application by the kernel the same way as it is for normal DRAM.  On Linux, this means the program will get a SIGBUS.

For more detail on how errors are handled, you might find Chapter 17 of the Programming Persistent Memory book interesting: https://pmem.io/book/ (you can read it online for free).

-andy

Wayne Gao

unread,
Jan 28, 2020, 9:05:14 PM1/28/20
to pmem
thank you so much. Andy, it is very clear for me now. :)

I will play pmemkv code recently. may have further questions for you. :)

Wayne Gao

unread,
Jan 29, 2020, 2:06:37 AM1/29/20
to pmem
hello Andy,

I like to live debug PMDK, I need build PMDK debug version. can you share me the most easy way to do it?
if it is debug version build, I can remote debug Linux application from VisualStudio

Marcin Ślusarz

unread,
Jan 29, 2020, 11:22:43 AM1/29/20
to Wayne Gao, pmem

śr., 29 sty 2020 o 08:06 Wayne Gao <gwne...@gmail.com> napisał(a):
hello Andy,

I like to live debug PMDK, I need build PMDK debug version. can you share me the most easy way to do it?
if it is debug version build, I can remote debug Linux application from VisualStudio

You don't have to build it yourself. Your distribution should provide a package with a debug version of the library.

Marcin

Wayne Gao

unread,
Jan 29, 2020, 9:55:54 PM1/29/20
to pmem
Thank you so much Marcin,

I also find the option. :) below
ifeq ($(DEBUG),1)
# Undefine _FORTIFY_SOURCE in case it's set in system-default or
# user-defined CFLAGS as it conflicts with -O0.
DEBUG_CFLAGS += -Wp,-U_FORTIFY_SOURCE
DEBUG_CFLAGS += -O0 -ggdb -DDEBUG
LIB_SUBDIR = /pmdk_debug

I have another question. I see the pmemkv reply on intel TBB. is it possible we remove TBB. and is there any very clean simple pmem-kv that only rely on pmemobj?

Igor Chorążewicz

unread,
Jan 30, 2020, 7:05:51 AM1/30/20
to Wayne Gao, pmem
Hello,

TBB is only required by one of the engines - vcmap wchich you can disable via Cmake (-DENGINE_VCMAP=0)

Igor

--
You received this message because you are subscribed to the Google Groups "pmem" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pmem+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pmem/27b12ec2-6373-4133-bd8a-5fc647d383ac%40googlegroups.com.

Wayne Gao

unread,
Jan 30, 2020, 8:46:58 PM1/30/20
to pmem
Thank you so much!~
To unsubscribe from this group and stop receiving emails from it, send an email to pm...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages