[mythtv-commits] Re: Ticket #551: blocking in ThreadedFileWriter

MythTV mythtv at cvs.mythtv.org
Mon Nov 14 10:19:56 EST 2005


#551: blocking in ThreadedFileWriter
-----------------------+----------------------------------------------------
 Reporter:  anonymous  |        Owner:  danielk 
     Type:  defect     |       Status:  assigned
 Priority:  critical   |    Milestone:  0.19    
Component:  mythtv     |      Version:  head    
 Severity:  medium     |   Resolution:          
-----------------------+----------------------------------------------------
Comment (by anonymous):

 This was a 4 minute run with the cycles increased.  Blocking was going on
 for all but the last 15 seconds.  I cleared the recordedmarkup table (88MB
 for MYD and 58MB for the MYI files), the people (3MB) and credits (2MB)
 tables also prior to this run.

 Is there a way to set when the schedular updates?  Is there a DB table
 that may be causing problems?  What are the safe tables to reset without
 losing any critical information?.. Would be nice if there was a "flush
 information that's not critical to cause missed recordings so those of us
 with year(s) of information can clean things up without starting a new DB"
 Or maybe a "export recording schedules, music, video's, etc...


 <COMPLETE PROFILE DUMP>
 Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit
 mask of 0x00 (No unit mask) count 10000

 samples  %        symbol name

 786      16.0835  Scheduler::FindNextConflict(std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> >&, ProgramInfo*,
 std::_List_iterator<ProgramInfo*, ProgramInfo*&, ProgramInfo**>&)

 547      11.1930  Scheduler::AddNewRecords()

 377       7.7143  void std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> >::merge<bool (*)(ProgramInfo*,
 ProgramInfo*)>(std::list<ProgramInfo*, std::allocator<ProgramInfo*> >&,
 bool (*)(ProgramInfo*, ProgramInfo*))

 286       5.8523  std::basic_stringbuf<char, std::char_traits<char>,
 std::allocator<char> >::_M_stringbuf_init(std::_Ios_Openmode)

 225       4.6041  std::basic_stringbuf<char, std::char_traits<char>,
 std::allocator<char> >::str() const

 200       4.0925  comp_priority(ProgramInfo*, ProgramInfo*)

 188       3.8469  std::basic_stringbuf<char, std::char_traits<char>,
 std::allocator<char> >::overflow(int)

 187       3.8265  void std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> >::sort<bool (*)(ProgramInfo*,
 ProgramInfo*)>(bool (*)(ProgramInfo*, ProgramInfo*))

 157       3.2126  anonymous symbol from section .plt

 155       3.1717  Scheduler::MarkShowingsList(std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> >&, ProgramInfo*)

 144       2.9466  std::basic_stringbuf<char, std::char_traits<char>,
 std::allocator<char> >::_M_really_sync(unsigned int, unsigned int)

 131       2.6806  comp_overlap(ProgramInfo*, ProgramInfo*)

 115       2.3532  QMapPrivate<int, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::find(int const&) const

 113       2.3123  char* std::string::_S_construct<char*>(char*, char*,
 std::allocator<char> const&, std::forward_iterator_tag)

 112       2.2918  comp_redundant(ProgramInfo*, ProgramInfo*)

 109       2.2304  AutoExpire::FillDBOrdered(int)

 101       2.0667  Scheduler::RunScheduler()

 97        1.9849  QValueListPrivate<QString>::~QValueListPrivate()

 85        1.7393  QValueListPrivate<QString>::QValueListPrivate()

 67        1.3710  Scheduler::SchedNewRecords()

 57        1.1664  Scheduler::BuildListMaps()

 56        1.1459  std::basic_string<char, std::char_traits<char>,
 std::allocator<char> >::basic_string<char*>(char*,
 char*,std::allocator<char> const&)

 51        1.0436  QMapPrivate<QString, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::find(QString const&) const

 49        1.0027  Scheduler::PruneOverlaps()

 45        0.9208  QMapPrivate<int, bool>::find(int const&) const

 44        0.9003  QValueList<QString>::detachInternal()

 43        0.8799  QValueListPrivate<QString>::at(unsigned int) const

 41        0.8390
 QValueListPrivate<QString>::insert(QValueListIterator<QString>, QString
 const&)

 36        0.7366
 QValueListPrivate<QString>::QValueListPrivate(QValueListPrivate<QString>
 const&)

 34        0.6957  Scheduler::PruneRedundants()

 29        0.5934  QMapPrivate<RecordingType, int>::find(RecordingType
 const&) const

 24        0.4911  QMap<int, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::operator[](int const&)

 24        0.4911  std::list<ProgramInfo*, std::allocator<ProgramInfo*>
 >::_M_create_node(ProgramInfo* const&)

 23        0.4706  std::_Rb_tree<QString, QString, std::_Identity<QString>,
 std::less<QString>, std::allocator<QString> >::find(QString const&) const

 18        0.3683  std::list<ProgramInfo*, std::allocator<ProgramInfo*>
 >::insert(std::_List_iterator<ProgramInfo*, ProgramInfo*&, ProgramInfo**>,
 ProgramInfo* const&)

 12        0.2455  AutoExpire::UpdateDontExpireSet()

 7         0.1432  AutoExpire::Sleep(int)

 6         0.1228  AutoExpire::IsInDontExpireSet(QString, QDateTime)

 6         0.1228  QMap<RecordingType, int>::operator[](RecordingType
 const&)

 6         0.1228  QMapPrivate<QString, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::insertSingle(QString const&)

 6         0.1228  QMapPrivate<int, bool>::clear(QMapNode<int, bool>*)

 6         0.1228  QMapPrivate<int, bool>::insert(QMapNodeBase*,
 QMapNodeBase*, int const&)

 5         0.1023  std::_List_base<ProgramInfo*,
 std::allocator<ProgramInfo*> >::__clear()

 4         0.0818  QMapPrivate<int, bool>::insertSingle(int const&)

 4         0.0818  QMapPrivate<int, jobqueueentry>::clear(QMapNode<int,
 jobqueueentry>*)

 4         0.0818  comp_recstart(ProgramInfo*, ProgramInfo*)

 4         0.0818  std::list<ProgramInfo*, std::allocator<ProgramInfo*>
 >::erase(std::_List_iterator<ProgramInfo*, ProgramInfo*&, ProgramInfo**>)

 3         0.0614  HouseKeeper::wantToRun(QString const&, int, int, int)

 3         0.0614  QMap<QString, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::operator[](QString const&)

 3         0.0614  QMapPrivate<QString, QString>::find(QString const&)
 const

 3         0.0614  QMapPrivate<int, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::clear(QMapNode<int,
 std::list<ProgramInfo*, std::allocator<ProgramInfo*> > >*)

 3         0.0614  Scheduler::PruneOldRecords()

 3         0.0614  std::list<ProgramInfo*, std::allocator<ProgramInfo*>
 >::operator=(std::list<ProgramInfo*, std::allocator<ProgramInfo*> >
 const&)

 2         0.0409  AutoExpire::RunExpirer()

 2         0.0409  HouseKeeper::RunHouseKeeping()

 2         0.0409  MainServer::customEvent(QCustomEvent*)

 2         0.0409  MainServer::qt_invoke(int, QUObject*)

 2         0.0409  MythEvent::~MythEvent()

 2         0.0409  PlaybackSock::UpRef()

 2         0.0409  QMap<RecordingType, int>::insert(RecordingType const&,
 int const&, bool)

 2         0.0409  QMapIterator<QString, int>::inc()

 2         0.0409  QMapPrivate<QString, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::clear(QMapNode<QString,
 std::list<ProgramInfo*, std::allocator<ProgramInfo*> > >*)

 2         0.0409  QString::~QString()

 2         0.0409  jobqueueentry::jobqueueentry()

 1         0.0205  AutoExpire::ExpireEpisodesOverMax()

 1         0.0205  AutoExpire::SendDeleteMessages(unsigned int, unsigned
 int, bool)

 1         0.0205  EncoderLink::MatchesRecording(ProgramInfo const*)

 1         0.0205  MainServer::DoHandleDeleteRecording(ProgramInfo*,
 PlaybackSock*, bool)

 1         0.0205  MainServer::deferredDeleteSlot()

 1         0.0205  MainServer::staticMetaObject()

 1         0.0205  QMap<QString, QString>::operator[](QString const&)

 1         0.0205  QMap<QString, int>::operator[](QString const&)

 1         0.0205  QMap<QString, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::insert(QString const&,
 std::list<ProgramInfo*, std::allocator<ProgramInfo*> > const&, bool)

 1         0.0205  QMapPrivate<QString, int>::clear()

 1         0.0205  QMapPrivate<int, jobqueueentry>::clear()

 1         0.0205  QMapPrivate<int, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::insert(QMapNodeBase*, QMapNodeBase*, int
 const&)

 1         0.0205  QMapPrivate<int, std::list<ProgramInfo*,
 std::allocator<ProgramInfo*> > >::insertSingle(int const&)

 1         0.0205  Scheduler::FillEncoderFreeSpaceCache()

 1         0.0205  Scheduler::FillRecordList()

 1         0.0205  Scheduler::MoveHigherRecords()

 1         0.0205  Scheduler::PrintRec(ProgramInfo*, char const*)

 1         0.0205  std::_Rb_tree<QString, QString, std::_Identity<QString>,
 std::less<QString>, std::allocator<QString> >::_M_create_node(QString
 const&)

 1         0.0205  std::_Rb_tree<QString, QString, std::_Identity<QString>,
 std::less<QString>, std::allocator<QString>
 >::_M_erase(std::_Rb_tree_node<QString>*)

 1         0.0205  std::_Rb_tree_rebalance(std::_Rb_tree_node_base*,
 std::_Rb_tree_node_base*&)

-- 
Ticket URL: <http://cvs.mythtv.org/trac/ticket/551>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list