Thread: [Ocf-linux-users] ocf-bench generates "Error in OCF processing: 5" using talitos SEC driver
Brought to you by:
david-m
From: 张绪峰 <sea...@12...> - 2011-04-14 06:05:55
|
Hi experts, I met some difficulties to run ocf-bench.ko on talitos SEC driver. It always generate errors "Error in OCF processing: 5" when run "insmod ocf-bench.ko" on 8548e board. How to reproduce: 1. configure "CONFIG_CRYPTO_DEV_TALITOS=n" "CONFIG_OCF_TALITOS=m" "CONFIG_OCF_OCF=y" "CONFIG_OCF_CRYPTODEV=y" "CONFIG_OCF_BENCH=m" 2. build the kernel and boot the 8548e board. 3. insmod talitos.ko 4. insmod ocf-bench.ko Then I got such errors "Error in OCF processing: 5". I know it is due to SEC h/w receive error interrupts during request processing, and the error bits in Channel_1 CCPSR register is 50 and 55. But I don't know how to do with it. I also run some openssl speed test such as "openssl speed -evp des -elapsed" on ocf talitos driver, it seems work fine, no error interrupt happens. So I want to know why this problem could happen? Any advice would be appreciated, thanks in advance! Thanks, Ted |
From: David M. <dav...@mc...> - 2011-04-14 06:27:23
|
Jivin 张绪峰 lays it down ... > Hi experts, > > I met some difficulties to run ocf-bench.ko on talitos SEC driver. > It always generate errors "Error in OCF processing: 5" when run "insmod ocf-bench.ko" on 8548e board. > > How to reproduce: > 1. configure "CONFIG_CRYPTO_DEV_TALITOS=n" "CONFIG_OCF_TALITOS=m" > "CONFIG_OCF_OCF=y" "CONFIG_OCF_CRYPTODEV=y" "CONFIG_OCF_BENCH=m" > 2. build the kernel and boot the 8548e board. > 3. insmod talitos.ko > 4. insmod ocf-bench.ko > Then I got such errors "Error in OCF processing: 5". > I know it is due to SEC h/w receive error interrupts during request processing, > and the error bits in Channel_1 CCPSR register is 50 and 55. But I don't know how to do with it. > > I also run some openssl speed test such as "openssl speed -evp des -elapsed" on ocf talitos driver, > it seems work fine, no error interrupt happens. > > So I want to know why this problem could happen? > Any advice would be appreciated, thanks in advance! So it sounds like it's working but ocf-bench is causing the driver headaches. Which version of ocf are you using ? Check through the ocf-bench code for something like this: if (request_batch) crp->crp_flags |= CRYPTO_F_BATCH; if (request_cbimm) crp->crp_flags |= CRYPTO_F_CBIMM; If you have it then good, otherwise you need to find where crp->crp_flags is set and try setting it to one of the following: crp->crp_flags = (CRYPTO_F_BATCH|CRYPTO_F_CBIMM); crp->crp_flags = CRYPTO_F_CBIMM; crp->crp_flags = CRYPTO_F_BATCH; crp->crp_flags = 0; That may fix it. Also, the latest ocf-bench does an SHA1/AES test, just in case that is confusing you with des working above. So not only does it use AES but it also hashes at the same time. Could be something to look into. Cheers, Davidm -- David McCullough, dav...@mc..., Ph:+61 734352815 McAfee - SnapGear http://www.mcafee.com http://www.uCdot.org |
From: 张绪峰 <sea...@12...> - 2011-04-14 07:11:40
|
At 2011-04-14 14:24:47,"David McCullough" <dav...@mc...> wrote: > >Jivin 张绪峰 lays it down ... >> Hi experts, >> >> I met some difficulties to run ocf-bench.ko on talitos SEC driver. >> It always generate errors "Error in OCF processing: 5" when run "insmod ocf-bench.ko" on 8548e board. >> >> How to reproduce: >> 1. configure "CONFIG_CRYPTO_DEV_TALITOS=n" "CONFIG_OCF_TALITOS=m" >> "CONFIG_OCF_OCF=y" "CONFIG_OCF_CRYPTODEV=y" "CONFIG_OCF_BENCH=m" >> 2. build the kernel and boot the 8548e board. >> 3. insmod talitos.ko >> 4. insmod ocf-bench.ko >> Then I got such errors "Error in OCF processing: 5". >> I know it is due to SEC h/w receive error interrupts during request processing, >> and the error bits in Channel_1 CCPSR register is 50 and 55. But I don't know how to do with it. >> >> I also run some openssl speed test such as "openssl speed -evp des -elapsed" on ocf talitos driver, >> it seems work fine, no error interrupt happens. >> >> So I want to know why this problem could happen? >> Any advice would be appreciated, thanks in advance! > >So it sounds like it's working but ocf-bench is causing the driver >headaches. Thank you very much for your prompt reply, Davidm. Actually, the original driver was not working at first, the talitos_probe() function will never be called, after I made some changes, then it works. Here is the change: --- a/crypto/ocf/talitos/talitos.c +++ b/crypto/ocf/talitos/talitos.c @@ -1306,8 +1306,7 @@ #ifdef CONFIG_PPC_MERGE static struct of_device_id talitos_match[] = { { - .type = "crypto", - .compatible = "talitos", + .compatible = "fsl,sec2.0", }, {}, }; > >Which version of ocf are you using ? I'm not very sure about that, from the ChangeLog file, the newest update time is: 2008-09-18 01:27. > >Check through the ocf-bench code for something like this: > > if (request_batch) > crp->crp_flags |= CRYPTO_F_BATCH; > if (request_cbimm) > crp->crp_flags |= CRYPTO_F_CBIMM; > I didn't find such codes in ocf-bench.c. >If you have it then good, otherwise you need to find where crp->crp_flags >is set and try setting it to one of the following: > > crp->crp_flags = (CRYPTO_F_BATCH|CRYPTO_F_CBIMM); > crp->crp_flags = CRYPTO_F_CBIMM; > crp->crp_flags = CRYPTO_F_BATCH; > crp->crp_flags = 0; I have tried each of these four setting, no one works, the same error. "crp->crp_flags = CRYPTO_F_CBIMM;" is the original setting. Thanks, Ted > >That may fix it. Also, the latest ocf-bench does an SHA1/AES test, just in >case that is confusing you with des working above. So not only does it use >AES but it also hashes at the same time. Could be something to look into. > >Cheers, >Davidm > >-- >David McCullough, dav...@mc..., Ph:+61 734352815 >McAfee - SnapGear http://www.mcafee.com http://www.uCdot.org |
From: 张绪峰 <sea...@12...> - 2011-04-15 06:22:53
|
Hi All, I have found a bug to run ocf-bench on ocf talitos driver. the request_size should not be 1500, because it is not a multiple of 64 bits while DEU data size register need it to be, or DEU will generate error interrupt. But I still have another error interrupt need to be resolved, that's channel_1 CCPSR Error 50. From the 8548e datasheet, I get this description: ----------------------------------------------------------------------------------- Error value 50: MDTE. A master data transfer error was received from the master bus interface. When the SEC, while acting as a bus master, detects an error, the controller passes the error to the channel in use. The channel halts and activates an interrupt. The channel can only be restarted by writing a ‘1’ to the continue or reset bit in the channel configuration register, or resetting the whole SEC. ----------------------------------------------------------------------------------- But this don't mean much to me, how can I determine which cause this error? Thanks, Xufeng Zhang At 2011-04-14 14:24:47,"David McCullough" <dav...@mc...> wrote: > >Jivin 张绪峰 lays it down ... >> Hi experts, >> >> I met some difficulties to run ocf-bench.ko on talitos SEC driver. >> It always generate errors "Error in OCF processing: 5" when run "insmod ocf-bench.ko" on 8548e board. >> >> How to reproduce: >> 1. configure "CONFIG_CRYPTO_DEV_TALITOS=n" "CONFIG_OCF_TALITOS=m" >> "CONFIG_OCF_OCF=y" "CONFIG_OCF_CRYPTODEV=y" "CONFIG_OCF_BENCH=m" >> 2. build the kernel and boot the 8548e board. >> 3. insmod talitos.ko >> 4. insmod ocf-bench.ko >> Then I got such errors "Error in OCF processing: 5". >> I know it is due to SEC h/w receive error interrupts during request processing, >> and the error bits in Channel_1 CCPSR register is 50 and 55. But I don't know how to do with it. >> >> I also run some openssl speed test such as "openssl speed -evp des -elapsed" on ocf talitos driver, >> it seems work fine, no error interrupt happens. >> >> So I want to know why this problem could happen? >> Any advice would be appreciated, thanks in advance! > >So it sounds like it's working but ocf-bench is causing the driver >headaches. > >Which version of ocf are you using ? > >Check through the ocf-bench code for something like this: > > if (request_batch) > crp->crp_flags |= CRYPTO_F_BATCH; > if (request_cbimm) > crp->crp_flags |= CRYPTO_F_CBIMM; > >If you have it then good, otherwise you need to find where crp->crp_flags >is set and try setting it to one of the following: > > crp->crp_flags = (CRYPTO_F_BATCH|CRYPTO_F_CBIMM); > crp->crp_flags = CRYPTO_F_CBIMM; > crp->crp_flags = CRYPTO_F_BATCH; > crp->crp_flags = 0; > >That may fix it. Also, the latest ocf-bench does an SHA1/AES test, just in >case that is confusing you with des working above. So not only does it use >AES but it also hashes at the same time. Could be something to look into. > >Cheers, >Davidm > >-- >David McCullough, dav...@mc..., Ph:+61 734352815 >McAfee - SnapGear http://www.mcafee.com http://www.uCdot.org |
From: David M. <dav...@mc...> - 2011-04-15 07:27:26
|
Jivin 张绪峰 lays it down ... > Hi All, > > I have found a bug to run ocf-bench on ocf talitos driver. > the request_size should not be 1500, because it is not a multiple of 64 bits while DEU data > size register need it to be, or DEU will generate error interrupt. Ok, there is a patch for a newer version of ocf (depending on which version you are running) that already addresses this. Read http://sourceforge.net/mailarchive/message.php?msg_id=26796850 and get the patch http://sourceforge.net/mailarchive/attachment.php?list_name=ocf-linux-users&message_id=20101222154234.GA25009%40mcafee.com&counter=1 This patch is aginst version ocf-linux-20100325, so if you are not running that version you may have some problems with the patch. > But I still have another error interrupt need to be resolved, that's channel_1 CCPSR Error 50. > from the 8548e datasheet, I get this description: > ----------------------------------------------------------------------------------- > Error value 50: > MDTE. A master data transfer error was received from the master bus interface. When the SEC, while acting > as a bus master, detects an error, the controller passes the error to the channel in use. The channel halts and > activates an interrupt. The channel can only be restarted by writing a ??1?? to the continue or reset bit in the > channel configuration register, or resetting the whole SEC. > ----------------------------------------------------------------------------------- > But this don't mean much to me, how can I determine which cause this error? I have no idea on this one, sorry, sounds like something is making the hardware unhappy. Could be the buffers ocf-bench is passing down or something wrong within the driver, no idea really. Cheers, Davidm > At 2011-04-14 14:24:47,"David McCullough" <dav...@mc...> wrote: > > > > >Jivin ??? lays it down ... > >> Hi experts, > >> > >> I met some difficulties to run ocf-bench.ko on talitos SEC driver. > >> It always generate errors "Error in OCF processing: 5" when run "insmod ocf-bench.ko" on 8548e board. > >> > >> How to reproduce: > >> 1. configure "CONFIG_CRYPTO_DEV_TALITOS=n" "CONFIG_OCF_TALITOS=m" > >> "CONFIG_OCF_OCF=y" "CONFIG_OCF_CRYPTODEV=y" "CONFIG_OCF_BENCH=m" > >> 2. build the kernel and boot the 8548e board. > >> 3. insmod talitos.ko > >> 4. insmod ocf-bench.ko > >> Then I got such errors "Error in OCF processing: 5". > >> I know it is due to SEC h/w receive error interrupts during request processing, > >> and the error bits in Channel_1 CCPSR register is 50 and 55. But I don't know how to do with it. > >> > >> I also run some openssl speed test such as "openssl speed -evp des -elapsed" on ocf talitos driver, > >> it seems work fine, no error interrupt happens. > >> > >> So I want to know why this problem could happen? > >> Any advice would be appreciated, thanks in advance! > > > >So it sounds like it's working but ocf-bench is causing the driver > >headaches. > > > >Which version of ocf are you using ? > > > >Check through the ocf-bench code for something like this: > > > > if (request_batch) > > crp->crp_flags |= CRYPTO_F_BATCH; > > if (request_cbimm) > > crp->crp_flags |= CRYPTO_F_CBIMM; > > > >If you have it then good, otherwise you need to find where crp->crp_flags > >is set and try setting it to one of the following: > > > > crp->crp_flags = (CRYPTO_F_BATCH|CRYPTO_F_CBIMM); > > crp->crp_flags = CRYPTO_F_CBIMM; > > crp->crp_flags = CRYPTO_F_BATCH; > > crp->crp_flags = 0; > > > >That may fix it. Also, the latest ocf-bench does an SHA1/AES test, just in > >case that is confusing you with des working above. So not only does it use > >AES but it also hashes at the same time. Could be something to look into. > > > >Cheers, > >Davidm > > > >-- > >David McCullough, dav...@mc..., Ph:+61 734352815 > >McAfee - SnapGear http://www.mcafee.com http://www.uCdot.org > > > > -- David McCullough, dav...@mc..., Ph:+61 734352815 McAfee - SnapGear http://www.mcafee.com http://www.uCdot.org |