[dpdk-users] My questions about dpdk hash

成桦者别 373755701 at qq.com
Thu Apr 6 12:57:38 CEST 2017


Hi all:
     here is my pseudo code:
     struct HASH_KEY
     {
         int data1;
         int data2;
      };
     void test_hash_add_key()
     {
        struct rte_hash* testHash;
        struct rte_hash_parameters hash_params;
        hash_params.name = "xxxyyy";
        hash_params.entries = 64;
        hash_params.hash_func = rte_jhash;
        hash_params.hash_func_init_val = 0;
        hash_params.key_len = sizeof(struct HASH_KEY);
        hash_params.socket_id = rte_socket_id();
        
        testHash = rte_hash_create(&hash_params);
        if(NULL == testHash)
        {
           return;
         }
          struct HASH_KEY hashKey;
          hashKey.data1=1;
          hashKey.data2=2;
          int iRet = rte_hash_add_key(testHash,(void*)&hashKey);
      }


       int main()
       {
          rte_eal_init();
          test_hash_add_key();
          return 0;
        }


The program give me a error "signal SIGILL ,illegal instruction"  in __rte_hash_add_key_with_hash,when i GDB it.


Using "static struct rte_hash_parameters hash_params; " or "static struct HASH_KEY hashKey; program would be OKey." , program would be okey and the error disappeared.
BUT,the test demo is so simple, I want to know WHY can it encounter an error.


     Any help would be appreciated.


More information about the users mailing list