Difference between revisions of "Performance/Meetings/2010 05"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Created page with '{{Performance}} ==Performance/Meetings/2010/05/28== Meeting Minutes<br> IRC Meeting of ORACLE with RedOffice<br> Performance Project<br> -----------------------------------------…')
 
(Performance/Meetings/2010/05/28)
 
(4 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
--------------------------------------------------------------------
 
--------------------------------------------------------------------
 
Agenda:<br><br>
 
Agenda:<br><br>
 
+
<mhu>Hi all, sorry for being late<br>
 +
<kuangliang>hi ,mhu<br>
 +
<liangjun>hi ,mhu :)<br>
 +
<LiHeng>hi, all sorry I'm being late<br>
 +
<mhu>well, I guess you were earlier than me, don't worry<br>
 +
<LiHeng>maybe in same time :)<br>
 +
<LiHeng>Let's update our status<br>
 +
<kuangliang>I'm analysising sd load document process, I want to realize load a blank page sd doc,and hold the filter,
 +
<kuangliang>when display page call filter load page content<br>
 +
<mhu>kuangliang: can explain in other words, what you are analyzing ?<br>
 +
<LiHeng>My status0:Working on new filter of presentation with kuangliang and to process the media object(audio or video) to be pushed into the file.<br>
 +
<mhu>s/can explain/can you please explain/<br>
 +
<yujinliang>My status: I was studying, when the quickstart has been run, start the IPC as soon as possible for reducing ooo start-up time<br>
 +
<LiHeng>mhu: we (kuangliang and I) do same work, when I work out the new filter, it need a little change in sd::Document, that can fire the event to reload all objects in a page<br>
 +
<kuangliang>so we must understand sd load document process<br>
 +
<kuangliang>I learn about sd load docment's process<br>
 +
<mhu>LiHeng, kuangliang: ah yes, understood<br>
 +
<LiHeng>My status1: Planning and submitting the papers of Conf2010, I think must finish the summaries before next Tuesday.<br>
 +
<mhu>yes, please dont forget to submit your presentation abstracts until Tuesday<br>
 +
<mhu>...the Hamburg team is also preparing to submit their abstracts.<br>
 +
<LiHeng>mhu:Is it a little presentation or a text document?<br>
 +
<mhu>I think, it is only a text abstract<br>
 +
<mhu>that may even be (I believe) ascii text posted into a web form, isnt it?<br>
 +
<LiHeng>I saw a field on the webpage named "abstracts" I think that is it.<br>
 +
<mhu>yes, that is what I mean<br>
 +
<LiHeng>Thanks :) I remember this.<br>
 +
<mhu>okay<br>
 +
<LiHeng>okay, that's all for me.<br>
 +
<mhu>I also have not more; I think the mutex synchronization issues are better discussed using the wiki page (looks good) and email; perhaps we again include Kay Ramme into the discussion.<br>
 +
<LiHeng>Absolutely yes!<br>
 +
<mhu>in the wiki (...parallel mutex...), I think the analysis section is good (leading to dead lock / serial execution), but I do not yet understand the proposed solution; lets do that in email ?<br>
 +
<LiHeng>Okay, we can talk more and more about the solution in email<br>
 +
<mhu>okay, will do<br>
 +
<mhu>then see you next friday, have a good weekend, bye all<br>
 +
<LiHeng>Bye and nice weekend ;)<br>
 +
<liangjun>Bye and nice weekend ;)<br>
 +
<yujinliang>bye all nice weeken<br>
 
--------------------------------------------------------------------
 
--------------------------------------------------------------------
 +
 
==Performance/Meetings/2010/05/21==
 
==Performance/Meetings/2010/05/21==
 
Meeting Minutes<br>
 
Meeting Minutes<br>
Line 20: Line 57:
 
--------------------------------------------------------------------
 
--------------------------------------------------------------------
 
Agenda:<br><br>
 
Agenda:<br><br>
 
+
<LiHeng>hi,what's up?<br>
 +
<yujinliang>hi<br>
 +
<liangjun>hi<br>
 +
<LiHeng>hi,all<br>
 +
<LiHeng>waiting for mhu<br>
 +
<liangjun>:)<br>
 +
<yujinliang>:-D<br>
 +
<mhu>Hi all, sorry for being late<br>
 +
<LiHeng>hi mhu<br>
 +
<LiHeng>Don't mind<br>
 +
<LiHeng>let's update our status<br>
 +
<liangjun>hi mhu :)<br>
 +
<yujinliang>hi mhu<br>
 +
<mhu>hi all<br>
 +
<mhu>liangjun: in your email to Kay Ramme, you again talked about things not thread-safe in Uno. I think I still don't understand what you mean. Can you explain, what exactly you found to be not thread safe, please ?<br>
 +
<liangjun>my status: I had update the cws and then loadofd can package on windows.<br>
 +
<LiHeng>My status:I am working the extension of new sd-filter that can load specified part of a document, to make partly load simple<br>
 +
<mhu>okay, that is good. So, someone (me) can look at that cws (loadofd).<br>
 +
<yujinliang>My status: now i major on fixing redoffice and trying to fix some openoffice bugs, such as issue108805
 +
<liangjun>mhu: my mean is the memory and base data struct are not thread safe. :) and I try to make it will be thread safe .<br>
 +
<mhu>which memory, and base data struct do you mean ?<br>
 +
<mhu>... that is a very general statement, I think<br>
 +
<liangjun>rtl_allocmemory.<br>
 +
<mhu>well, rtl_allocMemory() *is* thread-safe.<br>
 +
<mhu>...can you explain in more detail, what does not work for you ?<br>
 +
<liangjun>mhu: okey<br>
 +
<mhu>... there may of course always be undiscovered bugs<br>
 +
<liangjun>http://wiki.services.openoffice.org/wiki/Performance/load_performance_implement_parallel_mutex<br>
 +
<mhu>liangjun: please give me some time, to read that in detail. I just skipped over it. But, there is definitely no need to protect memory allocation and refcounting with external mutex, they are already thread-safe internally by design.<br>
 +
<liangjun>mhu: okey<br>
 +
<mhu>I will read that page (and think about it) until next friday latest, maybe I answer via email.<br>
 +
<mhu>just as a quick explanation: refcounting is done with osl_incrementInterlockedCount(), which is based (on x86) on the "LOCK XADD" processor instruction. You can look that up in the intel documentation. rtl_allocateMemory() uses an internal mutex, so that it can be called from many threads in parallel without problems (and without deadlocks).<br>
 +
<LiHeng>Thanks<br>
 +
<liangjun>mhu: thank you, okey. and I 'm fixing the detail on my computer( It is compiling , I can't get the result.)<br>
 +
<mhu>okay<br>
 +
<liangjun>mhu: I read it is thread safe, but I running the office it will error.<br>
 +
<mhu>what error, when ? can you explain ?<br>
 +
<liangjun>It is null point error.<br>
 +
<mhu>oh, but what has that to do with thread safe or not ?<br>
 +
<liangjun>So I add mutex on osl_incrementInterlockedCount and rtl_allocateMemory .<br>
 +
<mhu>are you saying that you have two threads calling rtl_allocateMemory() in parallel and one returns with a null pointer ?<br>
 +
<liangjun>and the tools::Container<br>
 +
<liangjun>mhu: no<br>
 +
<liangjun>I can't where are the null pointer<br>
 +
<liangjun>I can't check where are the null pointer<br>
 +
<mhu>can we leave out "high level" classes like tools:Container, and concentrate on rtl_allocateMemory() for the moment ?<br>
 +
<liangjun>So I do it<br>
 +
<mhu>okay, so it is not rtl_allocateMemory() that is failing, but some code using that memory, right ?<br>
 +
<liangjun>mhu: yes I think so<br>
 +
<mhu>access to the allocated memory of course needs to be protected.<br>
 +
<liangjun>So I add the mutex on it.<br>
 +
<mhu>you added a mutex to what ?<br>
 +
<liangjun>to rtl_allocateMemory()<br>
 +
<mhu>no, that must be wrong, as we just discussed<br>
 +
<mhu>I guess, what you mean is some code like this ...<br>
 +
<mhu>struct { mutex m_mutex; void * m_memory; }<br>
 +
<liangjun>mhu: I know your mean<br>
 +
<mhu>lock (s.m_mutex); s.m_memory = rtl_allocMem(); fill (s.m_memory); unlock (s.m_mutex);<br>
 +
<mhu>so, what you protect is the logic accessing the memory, not the call to rtl_allocMemory()<br>
 +
<mhu>another thread needs to do. ..<br>
 +
<mhu>lock (s.m_mutex); s.m_memmory[7] = 42; unlock(s.m_mutex);<br>
 +
<mhu>again, this has nothing to do with rtl_allocMemory<br>
 +
<liangjun>void * SAL_CALL rtl_allocateMemory (sal_Size n)<br>
 +
<liangjun>{<br>
 +
<liangjun>void * pResult = NULL;<br>
 +
<liangjun>osl_enterMemorySection();<br>
 +
<liangjun>pResult = malloc (n);<br>
 +
<liangjun>osl_leaveMemorySection();<br>
 +
<liangjun>return pResult;<br>
 +
<liangjun>}<br>
 +
<mhu>no, that is completely useless, as it is already done that way.<br>
 +
<mhu>and of course, malloc() itself is already thread-safe.<br>
 +
<mhu>i.e. this is not needed at all<br>
 +
<liangjun>mhu: oh<br>
 +
<mhu>btw. what is osl_enter|leaveMemorySection() ? I dont know these functions ?<br>
 +
<mhu>Enter|LeaveCriticalSection(LPCRITICALSECTION s) ?<br>
 +
<mhu>your own invention ?<br>
 +
<liangjun>mhu: yes, It like it<br>
 +
<mhu>okay, but as I said, all of this is already done, either in rtl_allocateMemory() or in the std libc malloc() implementation.<br>
 +
<mhu>and, believe me, I have implemented sal/rtl/source/alloc_global.c, alloc_cache.c and alloc_arena.c :-)<br>
 +
<liangjun>mhu: okey, :)<br>
 +
<mhu>there are very many threading problems in OOo, but just *not* in functions osl_incrementInterlockedCount() and rtl_allocateMemory(). these are probably the best examples of thread safe code :-)<br>
 +
<liangjun>mhu: I think so, but there are all null pointer. So I do it . :)<br>
 +
<mhu>then we probably need to find out where these null pointers come from; they cannot come directly from rtl_allocateMemory(), except you are out of memory already.<br>
 +
<liangjun>yes<br>
 +
<mhu>okay, I read your wiki page, and come back to you.<br>
 +
<liangjun>tools::Container ? and svarray ?<br>
 +
<mhu>they are not protected internally, but access to them need be protected externally.<br>
 +
<liangjun>oh<br>
 +
<mhu>...as with std::vector<T> et al.<br>
 +
<mhu>...none of these basic containers (or strings for that matter, std::string) is protected internally. at least for performance reasons. access must always be synchronized externally.<br>
 +
<liangjun>thank you.<br>
 +
<mhu>...and to make life easy for "old" code, the "SolarMutex" was invented, protecting on a very coarse grain the "old" code.<br>
 +
<mhu>...and everyone can assume that the "SolarMutex" is already hold when they are called.<br>
 +
<mhu>but again, let me read your wiki page, first.<br>
 +
<liangjun>:) okey.<br>
 +
<mhu>...and now I am exhausted :-)<br>
 +
<mhu>...and don't have more for today.<br>
 +
<LiHeng>okay that's all today. Thanks<br>
 +
<liangjun>:) Thanks you.<br>
 +
<mhu>okay, see you next week. have a nice weekend, bye all<br>
 +
<LiHeng>See you next week, have a nice weekend end. bye<br>
 +
<liangjun>bye <br>
 
--------------------------------------------------------------------
 
--------------------------------------------------------------------
 +
 
==Performance/Meetings/2010/05/07==
 
==Performance/Meetings/2010/05/07==
 
Meeting Minutes<br>
 
Meeting Minutes<br>
Line 31: Line 171:
 
--------------------------------------------------------------------
 
--------------------------------------------------------------------
 
Agenda:<br><br>
 
Agenda:<br><br>
 
+
<mhu>Hi all<br>
 +
<yujinliang>hi<br>
 +
<liangjun>mhu: hi<br>
 +
<LiHeng>hi, mhu<br>
 +
<mhu>Hi LiHeng, liangjun<br>
 +
<LiHeng>Let's update our status<br>
 +
<mhu>hi yujinliang<br>
 +
<yujinliang>hi mhu<br>
 +
<liangjun>mhu:LiHeng: these week, I'd update my source code to m77, and had update to http://hg.services.openoffice.org/cws/loadofd<br>
 +
<mhu>liangjun: could you push your changes to hg.services... ? the server was down for most of the week, I thought.<br>
 +
<LiHeng>My status:Update website of Benchmark-system to alert some information and number when performance has a big change<br>
 +
<liangjun>mhu: yes ,I push my changes today. :)<br>
 +
<mhu>liangjun: ah, okay, that explains it :-)<br>
 +
<yujinliang>sorry , i must leave for some other things<br>
 +
<LiHeng>My status 2: To work on partly loading, try to move my code into a import filter extension.<br>
 +
<mhu>do you somehow synchronize your work of partly loading and parallel loading ?<br>
 +
<liangjun>:) , now the source can compile. but now It has some warning.<br>
 +
<mhu>liangjun: okay ... have you already tested your code ? (and can you fix the warnings ?)<br>
 +
<LiHeng>Yujinliang need to change his station in our office, today. :)<br>
 +
<liangjun>I'm fixing the error. It can't work right.<br>
 +
<LiHeng>mhu: How about the help code of benchmark in tools?<br>
 +
<mhu>liheng: good question, I'm sorry that I did not yet manage to actually review the code; as I said, I am somewhat busy with (internal sun/oracle integration) task, mainly and have not so much time left. But I will sometime look into it.<br>
 +
<LiHeng>No problem, :), but I think I can work out some reports on OOo3.2 to test our system:)<br>
 +
<liangjun>Sorry, I do't fix the synchronization of the ODF parallel load. and I don't know more other module.<br>
 +
<liangjun>I can't know it is debug or designs error. I wish some helper and advise:). of couse I will try to find and fix the error.<br>
 +
<LiHeng>Okay,that all for me. It's jumbled that many people need to change their station now.<br>
 +
<mhu>liangjun: sorry, I was not clear: I was asking whether you and Li Heng sychronize the work that each of you do, one work on parallel loading, the other one on partial loading; do you have a common plan how the result of loading should look like?<br>
 +
<mhu>liangjun: I try to look into loadofd cws, when I find some time, and see whether I can help to debug problems.<br>
 +
<LiHeng>different respects of loading<br>
 +
<LiHeng>zengliangjun has been working on parallel processing document object when a document loading<br>
 +
<LiHeng>and I am working on partly loading , that a function can parse and process the document object that render functions need to get<br>
 +
<mhu>LiHeng: yes, understood. you work on different aspects, but what happens when both your changes are integrated? i.e. both cws integrated, do we have partial and parallel loading then?<br>
 +
<liangjun>mhu: thank you. I wish you can help me check my design is right or no. I do't finish the package and linux implement. So you can't debug directly.<br>
 +
<mhu>liangjun: multithreading sometimes can be debuggged best with pencil and paper (i.e. check and verify the design)<br>
 +
<mhu>...and with code reviews.<br>
 +
<LiHeng>maybe both, but at first i think we can choose the better one to integrate into OOo<br>
 +
<LiHeng>Because, parallel loading maybe have more advantages if we know which document objects need to be parallel :)<br>
 +
<liangjun>LiHeng:mhu: Yes, I wish you can reviews my code simple. the implement is right or no :)<br>
 +
<liangjun>It can't work right sometimes and error sometimes. :)<br>
 +
<mhu>LiHeng: okay, understood. yes, maybe we first need to test the tow aspects, and decide then which is better.
 +
<liangjun>It is the main thing is I can't find the problem, and fix it.<br>
 +
<mhu>liangjun: I try to find / make some time for code reviews.<br>
 +
<liangjun>mhu: thank you.<br>
 +
<LiHeng>mhu: Thanks, you are very kind!<br>
 +
<mhu>liangjun: you're welcome<br>
 +
<liangjun>:)<br>
 +
<mhu>okay, I also don't have more for today; except that we have a public holiday next Thursday, and I have a day vacation on Friday also. So, maybe we can have no meeting next week.<br>
 +
<mhu>...so that I have a long weekend from Thursday to Sunday next week.<br>
 +
<liangjun>Okay,that all for me.<br>
 +
<mhu>LiHeng: so, shall we finish for today ?<br>
 +
<liangjun>mhu: yes<br>
 +
<mhu>liangjun: LiHeng already disconnected ?<br>
 +
<liangjun>He maybe have some problems with network.<br>
 +
<mhu>okay, then bye all, and have a nice weekend; see you in two weeks, May 21.<br>
 +
<liangjun>okay :)<br>
 
--------------------------------------------------------------------
 
--------------------------------------------------------------------
 
[[Performance/Meetings|Go back]]<br>
 
[[Performance/Meetings|Go back]]<br>

Latest revision as of 08:49, 5 July 2010

Performance 170.png
Performance Project

performance.openoffice.org

Quick Navigation

Team

Communication

Activities

About this template


Performance/Meetings/2010/05/28

Meeting Minutes
IRC Meeting of ORACLE with RedOffice
Performance Project


Date: 2010/05/28


Agenda:

<mhu>Hi all, sorry for being late
<kuangliang>hi ,mhu
<liangjun>hi ,mhu :)
<LiHeng>hi, all sorry I'm being late
<mhu>well, I guess you were earlier than me, don't worry
<LiHeng>maybe in same time :)
<LiHeng>Let's update our status
<kuangliang>I'm analysising sd load document process, I want to realize load a blank page sd doc,and hold the filter, <kuangliang>when display page call filter load page content
<mhu>kuangliang: can explain in other words, what you are analyzing ?
<LiHeng>My status0:Working on new filter of presentation with kuangliang and to process the media object(audio or video) to be pushed into the file.
<mhu>s/can explain/can you please explain/
<yujinliang>My status: I was studying, when the quickstart has been run, start the IPC as soon as possible for reducing ooo start-up time
<LiHeng>mhu: we (kuangliang and I) do same work, when I work out the new filter, it need a little change in sd::Document, that can fire the event to reload all objects in a page
<kuangliang>so we must understand sd load document process
<kuangliang>I learn about sd load docment's process
<mhu>LiHeng, kuangliang: ah yes, understood
<LiHeng>My status1: Planning and submitting the papers of Conf2010, I think must finish the summaries before next Tuesday.
<mhu>yes, please dont forget to submit your presentation abstracts until Tuesday
<mhu>...the Hamburg team is also preparing to submit their abstracts.
<LiHeng>mhu:Is it a little presentation or a text document?
<mhu>I think, it is only a text abstract
<mhu>that may even be (I believe) ascii text posted into a web form, isnt it?
<LiHeng>I saw a field on the webpage named "abstracts" I think that is it.
<mhu>yes, that is what I mean
<LiHeng>Thanks :) I remember this.
<mhu>okay
<LiHeng>okay, that's all for me.
<mhu>I also have not more; I think the mutex synchronization issues are better discussed using the wiki page (looks good) and email; perhaps we again include Kay Ramme into the discussion.
<LiHeng>Absolutely yes!
<mhu>in the wiki (...parallel mutex...), I think the analysis section is good (leading to dead lock / serial execution), but I do not yet understand the proposed solution; lets do that in email ?
<LiHeng>Okay, we can talk more and more about the solution in email
<mhu>okay, will do
<mhu>then see you next friday, have a good weekend, bye all
<LiHeng>Bye and nice weekend ;)
<liangjun>Bye and nice weekend ;)
<yujinliang>bye all nice weeken


Performance/Meetings/2010/05/21

Meeting Minutes
IRC Meeting of ORACLE with RedOffice
Performance Project


Date: 2010/05/21


Agenda:

<LiHeng>hi,what's up?
<yujinliang>hi
<liangjun>hi
<LiHeng>hi,all
<LiHeng>waiting for mhu
<liangjun>:)
<yujinliang>:-D
<mhu>Hi all, sorry for being late
<LiHeng>hi mhu
<LiHeng>Don't mind
<LiHeng>let's update our status
<liangjun>hi mhu :)
<yujinliang>hi mhu
<mhu>hi all
<mhu>liangjun: in your email to Kay Ramme, you again talked about things not thread-safe in Uno. I think I still don't understand what you mean. Can you explain, what exactly you found to be not thread safe, please ?
<liangjun>my status: I had update the cws and then loadofd can package on windows.
<LiHeng>My status:I am working the extension of new sd-filter that can load specified part of a document, to make partly load simple
<mhu>okay, that is good. So, someone (me) can look at that cws (loadofd).
<yujinliang>My status: now i major on fixing redoffice and trying to fix some openoffice bugs, such as issue108805 <liangjun>mhu: my mean is the memory and base data struct are not thread safe. :) and I try to make it will be thread safe .
<mhu>which memory, and base data struct do you mean ?
<mhu>... that is a very general statement, I think
<liangjun>rtl_allocmemory.
<mhu>well, rtl_allocMemory() *is* thread-safe.
<mhu>...can you explain in more detail, what does not work for you ?
<liangjun>mhu: okey
<mhu>... there may of course always be undiscovered bugs
<liangjun>http://wiki.services.openoffice.org/wiki/Performance/load_performance_implement_parallel_mutex
<mhu>liangjun: please give me some time, to read that in detail. I just skipped over it. But, there is definitely no need to protect memory allocation and refcounting with external mutex, they are already thread-safe internally by design.
<liangjun>mhu: okey
<mhu>I will read that page (and think about it) until next friday latest, maybe I answer via email.
<mhu>just as a quick explanation: refcounting is done with osl_incrementInterlockedCount(), which is based (on x86) on the "LOCK XADD" processor instruction. You can look that up in the intel documentation. rtl_allocateMemory() uses an internal mutex, so that it can be called from many threads in parallel without problems (and without deadlocks).
<LiHeng>Thanks
<liangjun>mhu: thank you, okey. and I 'm fixing the detail on my computer( It is compiling , I can't get the result.)
<mhu>okay
<liangjun>mhu: I read it is thread safe, but I running the office it will error.
<mhu>what error, when ? can you explain ?
<liangjun>It is null point error.
<mhu>oh, but what has that to do with thread safe or not ?
<liangjun>So I add mutex on osl_incrementInterlockedCount and rtl_allocateMemory .
<mhu>are you saying that you have two threads calling rtl_allocateMemory() in parallel and one returns with a null pointer ?
<liangjun>and the tools::Container
<liangjun>mhu: no
<liangjun>I can't where are the null pointer
<liangjun>I can't check where are the null pointer
<mhu>can we leave out "high level" classes like tools:Container, and concentrate on rtl_allocateMemory() for the moment ?
<liangjun>So I do it
<mhu>okay, so it is not rtl_allocateMemory() that is failing, but some code using that memory, right ?
<liangjun>mhu: yes I think so
<mhu>access to the allocated memory of course needs to be protected.
<liangjun>So I add the mutex on it.
<mhu>you added a mutex to what ?
<liangjun>to rtl_allocateMemory()
<mhu>no, that must be wrong, as we just discussed
<mhu>I guess, what you mean is some code like this ...
<mhu>struct { mutex m_mutex; void * m_memory; }
<liangjun>mhu: I know your mean
<mhu>lock (s.m_mutex); s.m_memory = rtl_allocMem(); fill (s.m_memory); unlock (s.m_mutex);
<mhu>so, what you protect is the logic accessing the memory, not the call to rtl_allocMemory()
<mhu>another thread needs to do. ..
<mhu>lock (s.m_mutex); s.m_memmory[7] = 42; unlock(s.m_mutex);
<mhu>again, this has nothing to do with rtl_allocMemory
<liangjun>void * SAL_CALL rtl_allocateMemory (sal_Size n)
<liangjun>{
<liangjun>void * pResult = NULL;
<liangjun>osl_enterMemorySection();
<liangjun>pResult = malloc (n);
<liangjun>osl_leaveMemorySection();
<liangjun>return pResult;
<liangjun>}
<mhu>no, that is completely useless, as it is already done that way.
<mhu>and of course, malloc() itself is already thread-safe.
<mhu>i.e. this is not needed at all
<liangjun>mhu: oh
<mhu>btw. what is osl_enter|leaveMemorySection() ? I dont know these functions ?
<mhu>Enter|LeaveCriticalSection(LPCRITICALSECTION s) ?
<mhu>your own invention ?
<liangjun>mhu: yes, It like it
<mhu>okay, but as I said, all of this is already done, either in rtl_allocateMemory() or in the std libc malloc() implementation.
<mhu>and, believe me, I have implemented sal/rtl/source/alloc_global.c, alloc_cache.c and alloc_arena.c :-)
<liangjun>mhu: okey, :)
<mhu>there are very many threading problems in OOo, but just *not* in functions osl_incrementInterlockedCount() and rtl_allocateMemory(). these are probably the best examples of thread safe code :-)
<liangjun>mhu: I think so, but there are all null pointer. So I do it . :)
<mhu>then we probably need to find out where these null pointers come from; they cannot come directly from rtl_allocateMemory(), except you are out of memory already.
<liangjun>yes
<mhu>okay, I read your wiki page, and come back to you.
<liangjun>tools::Container ? and svarray ?
<mhu>they are not protected internally, but access to them need be protected externally.
<liangjun>oh
<mhu>...as with std::vector<T> et al.
<mhu>...none of these basic containers (or strings for that matter, std::string) is protected internally. at least for performance reasons. access must always be synchronized externally.
<liangjun>thank you.
<mhu>...and to make life easy for "old" code, the "SolarMutex" was invented, protecting on a very coarse grain the "old" code.
<mhu>...and everyone can assume that the "SolarMutex" is already hold when they are called.
<mhu>but again, let me read your wiki page, first.
<liangjun>:) okey.
<mhu>...and now I am exhausted :-)
<mhu>...and don't have more for today.
<LiHeng>okay that's all today. Thanks
<liangjun>:) Thanks you.
<mhu>okay, see you next week. have a nice weekend, bye all
<LiHeng>See you next week, have a nice weekend end. bye
<liangjun>bye


Performance/Meetings/2010/05/07

Meeting Minutes
IRC Meeting of ORACLE with RedOffice
Performance Project


Date: 2010/05/07


Agenda:

<mhu>Hi all
<yujinliang>hi
<liangjun>mhu: hi
<LiHeng>hi, mhu
<mhu>Hi LiHeng, liangjun
<LiHeng>Let's update our status
<mhu>hi yujinliang
<yujinliang>hi mhu
<liangjun>mhu:LiHeng: these week, I'd update my source code to m77, and had update to http://hg.services.openoffice.org/cws/loadofd
<mhu>liangjun: could you push your changes to hg.services... ? the server was down for most of the week, I thought.
<LiHeng>My status:Update website of Benchmark-system to alert some information and number when performance has a big change
<liangjun>mhu: yes ,I push my changes today. :)
<mhu>liangjun: ah, okay, that explains it :-)
<yujinliang>sorry , i must leave for some other things
<LiHeng>My status 2: To work on partly loading, try to move my code into a import filter extension.
<mhu>do you somehow synchronize your work of partly loading and parallel loading ?
<liangjun>:) , now the source can compile. but now It has some warning.
<mhu>liangjun: okay ... have you already tested your code ? (and can you fix the warnings ?)
<LiHeng>Yujinliang need to change his station in our office, today. :)
<liangjun>I'm fixing the error. It can't work right.
<LiHeng>mhu: How about the help code of benchmark in tools?
<mhu>liheng: good question, I'm sorry that I did not yet manage to actually review the code; as I said, I am somewhat busy with (internal sun/oracle integration) task, mainly and have not so much time left. But I will sometime look into it.
<LiHeng>No problem, :), but I think I can work out some reports on OOo3.2 to test our system:)
<liangjun>Sorry, I do't fix the synchronization of the ODF parallel load. and I don't know more other module.
<liangjun>I can't know it is debug or designs error. I wish some helper and advise:). of couse I will try to find and fix the error.
<LiHeng>Okay,that all for me. It's jumbled that many people need to change their station now.
<mhu>liangjun: sorry, I was not clear: I was asking whether you and Li Heng sychronize the work that each of you do, one work on parallel loading, the other one on partial loading; do you have a common plan how the result of loading should look like?
<mhu>liangjun: I try to look into loadofd cws, when I find some time, and see whether I can help to debug problems.
<LiHeng>different respects of loading
<LiHeng>zengliangjun has been working on parallel processing document object when a document loading
<LiHeng>and I am working on partly loading , that a function can parse and process the document object that render functions need to get
<mhu>LiHeng: yes, understood. you work on different aspects, but what happens when both your changes are integrated? i.e. both cws integrated, do we have partial and parallel loading then?
<liangjun>mhu: thank you. I wish you can help me check my design is right or no. I do't finish the package and linux implement. So you can't debug directly.
<mhu>liangjun: multithreading sometimes can be debuggged best with pencil and paper (i.e. check and verify the design)
<mhu>...and with code reviews.
<LiHeng>maybe both, but at first i think we can choose the better one to integrate into OOo
<LiHeng>Because, parallel loading maybe have more advantages if we know which document objects need to be parallel :)
<liangjun>LiHeng:mhu: Yes, I wish you can reviews my code simple. the implement is right or no :)
<liangjun>It can't work right sometimes and error sometimes. :)
<mhu>LiHeng: okay, understood. yes, maybe we first need to test the tow aspects, and decide then which is better. <liangjun>It is the main thing is I can't find the problem, and fix it.
<mhu>liangjun: I try to find / make some time for code reviews.
<liangjun>mhu: thank you.
<LiHeng>mhu: Thanks, you are very kind!
<mhu>liangjun: you're welcome
<liangjun>:)
<mhu>okay, I also don't have more for today; except that we have a public holiday next Thursday, and I have a day vacation on Friday also. So, maybe we can have no meeting next week.
<mhu>...so that I have a long weekend from Thursday to Sunday next week.
<liangjun>Okay,that all for me.
<mhu>LiHeng: so, shall we finish for today ?
<liangjun>mhu: yes
<mhu>liangjun: LiHeng already disconnected ?
<liangjun>He maybe have some problems with network.
<mhu>okay, then bye all, and have a nice weekend; see you in two weeks, May 21.
<liangjun>okay :)


Go back

Personal tools