Changeset 3759 in Sophya for trunk/AddOn
- Timestamp:
- Apr 30, 2010, 11:04:59 PM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/mfacq.cc
r3758 r3759 294 294 cout <<"mfacq[2] Creating PCIEToEthernet thread object " << endl; 295 295 PCIEToEthernet pci2eth(vec_pciw, bpar.GetParams().GetEthTargets(), bpar.GetParams()); 296 pci2eth.SetPrintLevel(1); 296 297 // usleep(200); attente au cas ou ... 297 298 pPcie2Eth=&pci2eth; -
trunk/AddOn/TAcq/racqueth.cc
r3758 r3759 59 59 } 60 60 totrdsnd_ = 0; 61 SetEthSendBlockSize(); 62 SetPrintLevel(); 61 63 } 62 64 … … 149 151 // Byte* nextdma = locdata+((kmz%memgr.NbZones())*(paqsz*memgr.NbPaquets())); 150 152 uint_4 npaqfaitg = 0; 153 uint_4 prtmod = par_.BlocPerFile()*par_.MMgrNbPaquet(); 154 if (prtmod < 500) prtmod=500; 155 151 156 while (npaqfaitg < nmaxpaq_) { // Boucle global G 152 157 if (fgarret) break; … … 171 176 } 172 177 if (fgbaddma) continue; 173 178 if ((prtlev_>0)&&(npaqfaitg%prtmod==0)) 179 cout << " PCIEToEthernet::run()/Info NPaqFait= " << npaqfaitg << endl; 174 180 if (fgdirectsend) { // Pas de copie / reduction de taille de paquet, on rebalance tel quel ... 175 181 for (int fib=0; fib<(int) nbDma_ ;fib++) { … … 306 312 size_t PCIEToEthernet::SendToTargets(int fib, Byte* data, size_t len) 307 313 { 308 // DBGcout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++;314 // cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++; 309 315 vector<ClientSocket>& vskt = vvec_skt_[fib]; 310 316 size_t rc=0; 311 for(size_t j=0; j<vskt.size(); j++) { 312 rc += vskt[j].Send((const char *)data, len); 313 totrdsnd_ += len; 317 size_t nblk = len/eths_bsz_; 318 size_t fblk = len%eths_bsz_; 319 size_t off = 0; 320 if (nblk>0) { 321 for(size_t i=0; i<nblk; i++) { 322 for(size_t j=0; j<vskt.size(); j++) { 323 rc += vskt[j].Send((const char *)data+off, eths_bsz_); 324 totrdsnd_ += eths_bsz_; 325 } 326 off += eths_bsz_; 327 } 328 } 329 if (fblk>0) { 330 for(size_t j=0; j<vskt.size(); j++) { 331 rc += vskt[j].Send((const char *)data+off, fblk); 332 totrdsnd_ += fblk; 333 } 314 334 } 315 335 return rc; … … 323 343 : memgr_(mem), par_(par), stop_(false), rdsamefc_(rdsamefc), tcpportid_(portid) 324 344 { 325 SetPrintLevel();326 345 totnbytesrd_ = 0; 327 346 totnpaqrd_ = 0; … … 359 378 cout << " EthernetReader/Info connection/link" << fib << " established." << endl; 360 379 } 380 381 SetEthRecvBlockSize(); 382 SetPrintLevel(); 361 383 } 362 384 … … 476 498 bool fggood=false; 477 499 while(!fggood) { 478 vsok_[fib].Receive((char *)vpaq_[fib].Begin(), packsize_);500 ReceiveFromSocket(fib, (char *)vpaq_[fib].Begin(), packsize_); 479 501 totnbytesrd_+=packsize_; 480 502 totnpqrd_[fib]++; … … 483 505 totnpqok_[fib]++; 484 506 return false; 507 } 508 509 /* --Methode-- */ 510 size_t EthernetReader::ReceiveFromSocket(int fib, char* data, size_t len) 511 { 512 size_t nblk = len/ethr_bsz_; 513 size_t fblk = len%ethr_bsz_; 514 size_t off = 0; 515 size_t rc =0; 516 if (nblk>0) { 517 for(size_t i=0; i<nblk; i++) { 518 rc += vsok_[fib].Receive(data+off, ethr_bsz_); 519 off += ethr_bsz_; 520 } 521 } 522 if (fblk>0) { 523 rc += vsok_[fib].Receive(data+off, fblk); 524 } 525 return rc; 485 526 } 486 527 -
trunk/AddOn/TAcq/racqueth.h
r3758 r3759 54 54 inline void STOP() { stop_ = true; } 55 55 56 inline size_t SetEthSendBlockSize(size_t bsz=1024) 57 { size_t rs=eths_bsz_; eths_bsz_=bsz; return rs; } 58 inline int SetPrintLevel(int lev=0) { prtlev_=lev; return 0;} 59 56 60 protected: 57 61 virtual size_t SendToTargets(int fib, Byte* data, size_t len); … … 71 75 uint_4 nbDma_; 72 76 uint_8 totrdsnd_; 73 77 size_t eths_bsz_; 78 int prtlev_; 74 79 }; 75 80 … … 84 89 inline void STOP() { stop_ = true; } 85 90 91 inline size_t SetEthRecvBlockSize(size_t bsz=1024) 92 { size_t rs=ethr_bsz_; ethr_bsz_=bsz; return rs; } 86 93 inline int SetPrintLevel(int lev=0) { prtlev_=lev; return 0;} 94 87 95 protected: 88 96 bool ReadNextAllFibers(); // Renvoie true si probleme 89 97 bool ReadNext(int fib); // Renvoie true si probleme 98 size_t ReceiveFromSocket(int fib, char* data, size_t len); 99 90 100 // Permet d'avancer d'un paquet dans la zone - renvoie true si probleme 91 101 inline bool MoveToNextTarget() { … … 125 135 Byte* mmbufib_[MAXANAFIB]; // Pointeurs zone memoire de chaque fibre rendu par RAcqMemZoneMgr 126 136 137 size_t ethr_bsz_; 127 138 int prtlev_; 128 139 };
Note:
See TracChangeset
for help on using the changeset viewer.